Come gestire le immagini inviate da un dispositivo mobile?

Un mio pari sta sviluppando un'applicazione per iPhone che permetterà agli utenti di pubblicare immagini sul mio sito tramite la mia API. Sto costruendo la parte dell'API che accetterà ed elaborerà le immagini.

Lo sviluppatore mobile sta inviando intestazioni come tali:

Content-Disposition: form-data; name="photo_1"; filename="photo_1.jpg" Content-Type: application/octet-stream 

Quando cerchi le immagini inviate, è lo stesso metodo con i normali moduli HTML? Dovrei cercare $ _FILES?

Oppure, usando PHP, come troverei la sua image?

Non sembra essere inviato tramite un module, cioè <form enctype=multipart/form-data"> e <input type="file"> , quindi l'arrays $_FILES non verrà popolato.

Probabilmente dovrai leggere:

 $HTTP_RAW_POST_DATA 

o fare:

 $rawPost = file_get_contents("php://input"); 

Dal manuale :

php: // input consente di leggere i dati grezzi dal corpo della richiesta. In caso di richieste POST, è preferibile a $ HTTP_RAW_POST_DATA in quanto non dipende da speciali direttive php.ini. Inoltre, per quei casi in cui $ HTTP_RAW_POST_DATA non è popolato per impostazione predefinita, è un'alternativa potenzialmente less dispendiosa in termini di memory per l'triggerszione di always_populate_raw_post_data. php: // input non è disponibile con enctype = "multipart / form-data".

Per maggiori informazioni, controlla:

http://php.net/manual/en/wrappers.php.php

http://php.net/manual/en/reserved.variables.httprawpostdata.php

Suppongo che iOS stia inviando l'integer file come un singolo block di dati nella sezione POSTDATA della richiesta HTTP. È ansible recuperare l'intera POSTDATA (non analizzata):

 <?php $postdata = file_get_contents("php://input"); ?> 

$_FILES è pensato per leggere i file inviati con enctype="multipart/form-data" in un formato HTML corretto. Probabilmente iOS sta inviando un semplice vecchio POST contenente solo un mucchio di byte che rappresentano il file.

Dimmi se questo risolve!

Vedi queste risposte che ho dato a domande simili (elaborando gli upload da php://input ):

  • userland multipart / form-data handler e anche
  • Come validationre se il file caricato è un'image? [file inviato tramite File API di HTML5, ricevuto tramite php: // input]