Perché non debuggi lo script prima di passare alla funzione successiva?
Io farei così:
Quantomeno in questo modo vedi da dove nasce l'inghippo.Codice PHP:
$foto = $_FILES['foto']['tmp_name'];
$upload_directory = $_SERVER["DOCUMENT_ROOT"]."/img/".time().".jpg";
echo $foto."
".$upload_directory;
exit;
Commenta anche la stringa $fotonome = $_FILES['foto']['name']; in modo che lo script non la veda. Magari c'è un qualche errorino di sintassi che non vediamo e che genera il comportamento anomalo che descrivi.
Ora ti volevo far notare un po' di cose.
Il controllo sul mancato upload del file, si fa con $_FILES['foto']['error'].
Se è uguale a 0 significa che il file è stato caricato nel server.
Altrimenti, ci sono altri 4 parametri.
Adesso non ricordo di preciso l'associazione "numero/significato", ma dovrebbe essere qualcosa tipo:
• 1 - File di dimensioni superiori rispetto a quanto settato nel PHP.INI
• 2 - File di dimensioni superiori rispetto a quanto settato come valore massimo nella form (MAX_FILE_SIZE)
• 3 - non ricordo
• 4 - file incompleto
Trovi diverse informazioni in merito a queste enum in giro per il web e potresti anche utilizzare tali valori per completare il tuo script con un solido Report Degli Errori.
Se fai il controllo, come suggerito da *pragma, con !empty() tornerà sempre qualcosa, proprio perché un valore (che sia 0, 1, 2, 3 o 4) è sempre contenuto in $_FILES['foto']['error'], per cui $_FILES non sarà mai vuoto!!!
Altra considerazione sullo script.
Se chi usa lo script, dovesse caricare una immagine diversa da un JPG?
Ti consiglio di usare $_FILES['foto']['type'] e di fare un restringimento dei tipi di file possibili da caricare.
Non capisco poi cosa ti abbia voluto suggerire Mr.Click che ti vorrebbe far leggere il file e trasformarlo in una stringa (file_get_content) per poi andarlo a scrivere nuovamente come fosse un file di testo ma con estensione JPG.
Non ho mai visto uno script del genere, magari funziona pure, ma di sicuro è un lavoro inutile.... quantomeno perché non risolve il problema per cui hai aperto il thread.
![]()