Il file non viene caricato su localhost tramite PHP

Non riesco a caricare file su localhost usando PHP. Ho creato un semplice modulo html e uno script php. Tuttavia ricevo questi messaggi di errore.

‘Import.html’

  


‘Import.php’

  0) { echo "Return Code: " . $_FILES["import"]["error"] . "
"; } else { echo "Upload: " . $_FILES["import"]["name"] . "
"; echo "Type: " . $_FILES["import"]["type"] . "
"; echo "Size: " . ($_FILES["import"]["size"] / 1024) . " Kb
"; echo "Temp file: " . $_FILES["import"]["tmp_name"] . "
"; if (file_exists("upload/" . $_FILES["import"]["name"])) { echo $_FILES["import"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["import"]["tmp_name"], "upload/" . $_FILES["import"]["name"]); echo "Stored in: " . "upload/" . $_FILES["import"]["name"]; } } ?>

Messaggio di errore:

Avviso: move_uploaded_file (upload / import.xml) [function.move-uploaded-file]: imansible aprire lo stream: nessun file o directory in C: \ xampp \ htdocs \ teecom \ admin \ import.php sulla riga 20

Avviso: move_uploaded_file () [function.move-upload-file]: imansible spostare “C: \ Windows \ Temp \ phpD02C.tmp” su “upload / import.xml” in C: \ xampp \ htdocs \ teecom \ admin \ import.php sulla riga 20 Memorizzato in: upload / import.xml

Bene, secondo le tue directory localhost puoi provare questo:

 if (!file_exists("teecom/upload")) { mkdir("teecom/upload", 0777, true); } if (file_exists("teecom/upload/" . $_FILES["import"]["name"])) { echo $_FILES["import"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["import"]["tmp_name"], "teecom/upload/" . $_FILES["import"]["name"]); echo "Stored in: " . "upload/" . $_FILES["import"]["name"]; } 

Sembra che tu stia usando Windows.

Modificherei il percorso di destinazione da un parente ad un percorso assoluto, se ansible. Per esempio:

 move_uploaded_file($_FILES["import"]["tmp_name"], "C:/upload/" . $_FILES["import"]["name"]); 

Oppure prova il percorso:

 $_SERVER['DOCUMENT_ROOT'] . '/upload/' . $_FILES['import']['name'] 

Prova anche a creare quella directory C: \ upload \ o C: \ xampp \ htdocs \ upload \ prima di provare a caricarla.

Il tuo file non è stato chiaramente caricato nella cartella temporanea da cui la funzione move_uploaded_file dovrebbe spostarlo. Ci sono molte ragioni per cui potrebbe accadere che il più frequente sia che non si hanno permessi di scrittura nella cartella temporanea che PHP sta usando.

Questo è vecchio, ma per le persone che hanno questo problema in futuro, tutto ciò che ho fatto per il mio localhost (wamp) è fare clic sull’icona del server, andare su PHP, Impostazioni PHP e selezionare File Uploads.

Questo ha funzionato per me.