Il caricamento dei file funziona sul desktop, ma non sul cellulare utilizzando la fotocamera

Sto cercando di creare uno script HTML e PHP per caricare immagini su un server web dal telefono di un utente. Funziona bene perché richiede all’utente di selezionare un’immagine dalla propria galleria o di acquisire un’immagine con la propria fotocamera. Quando catturo un’immagine, questa riempie correttamente le informazioni

“Foo.jpg”

ma quando passo i dati sul mio script PHP, mi dà l’errore

“Attenzione il nome file di getimagesize () non può essere vuoto …. Spiacenti, si è verificato un errore durante il caricamento del file.”

Ciò che mi confonde, è che il nome del file non era vuoto nella mia forma. Inoltre, quando invio il modulo utilizzando un computer desktop (richiede solo un caricamento di file), funziona perfettamente come dovrebbe.

    HTML:

       
    Select image to upload:

    PHP:

     <?php $rma = $_POST['rma']; echo "RMA: " . $rma. "
    "; $target_dir = "uploads/". $rma; if (file_exists($target_dir)==false) { if(mkdir ($target_dir)) { echo "folder created at: " .$target_dir . "
    "; } else { echo "failed to create folder " . $target_dir. "
    "; } } $target_file = $target_dir ."/" .basename($_FILES["imageFileToUpload"]["name"]); $uploadOk = 1; $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); // Check if image file is a actual image or fake image if(isset($_POST["submit"])) { $check = getimagesize($_FILES["imageFileToUpload"]["tmp_name"]); if($check !== false) { //echo "File is an image - " . $check["mime"] . "."; $uploadOk = 1; } else { echo "File is not an image.
    "; $uploadOk = 0; } // Check if file already exists if (file_exists($target_file)) { echo "Sorry, file already exists.
    "; $uploadOk = 0; } // if everything is ok, try to upload file else { if (move_uploaded_file($_FILES["imageFileToUpload"]["tmp_name"], $target_file)) { echo "The file ". basename( $_FILES["imageFileToUpload"]["name"]). " has been uploaded.
    "; } else { echo "Sorry, there was an error uploading your file."; } } } ?>

    Vorrei ringraziare tutti per il loro gentile e paziente aiuto fino ad ora e apprezzo qualsiasi risposta e guida.


    AGGIORNARE:

    Sto usando un Ipad con Safari e un dispositivo Android con 6.0.1 Marshmallow e il browser Chrome. Il file di dump ha mostrato alcune informazioni.

    Ecco l’eco dall’iPad:

     RMA: 2468 C:\wamp64\www\upload.php:5: array (size=5) 'name' => string 'image.jpg' (length=9) 'type' => string '' (length=0) 'tmp_name' => string '' (length=0) 'error' => int 1 'size' => int 0 folder created at: uploads/2468 ( ! ) Warning: getimagesize(): Filename cannot be empty in C:\wamp64\www\upload.php on line 31 Call Stack # Time Memory Function Location 1 0.0006 376976 {main}( ) ...\upload.php:0 2 0.0011 377176 createImageFile( ) ...\upload.php:20 3 0.0012 377208 getimagesize ( ) ...\upload.php:31 File is not an image. Sorry, there was an error uploading your file. 

    Cromo Android 6.0.1:

     RMA: 1996 C:\wamp64\www\upload.php:5: array (size=5) 'name' => string '20160322_125659.jpg' (length=19) 'type' => string '' (length=0) 'tmp_name' => string '' (length=0) 'error' => int 1 'size' => int 0 folder created at: uploads/1996 ( ! ) Warning: getimagesize(): Filename cannot be empty in C:\wamp64\www\upload.php on line 30 Call Stack # Time Memory Function Location 1 0.0006 377880 {main}( ) ...\upload.php:0 2 0.0012 378096 createImageFile( ) ...\upload.php:20 3 0.0012 378128 getimagesize ( ) ...\upload.php:30 File is not an image. Sorry, there was an error uploading your file. 

    Eco di lavoro dal computer:

      RMA: 1234 C:\wamp64\www\upload.php:5: array (size=5) 'name' => string '58832_300x300.jpg' (length=17) 'type' => string 'image/jpeg' (length=10) 'tmp_name' => string 'C:\wamp64\tmp\phpF5F3.tmp' (length=25) 'error' => int 0 'size' => int 3801 The file 58832_300x300.jpg has been uploaded. New record created successfully 

    Sembra che non mandi mai il tipo di immagine o il file, solo il nome quando si usano i dispositivi mobili. Qualche idea?

    Sembra essere un problema CORS.

    C’è un errore quando provi a caricare da un’altra posizione.

    Vedi il file di log del tuo server wamp per le informazioni dettagliate sull’errore …

    Per maggiori informazioni su quel meccanismo, vedi: CORS wiki