(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
move_uploaded_file — Sposta un file caricato in una nuova posizione
Questa funzione verifica che il file indicato da
from
sia un file caricato correttamente (nel senso
che è stato caricato attraverso il meccanismo di caricamento HTTP POST di PHP). Se
il file è valido, verrà spostato nel file dato da
to
.
Questo tipo di verifica è particolarmente importante se sussiste la possibilità che qualsiasi cosa fatta con i file caricati possa rivelarne il contenuto all'utente, o anche ad altri utenti sullo stesso sistema.
from
Il nome del file caricato.
to
La destinazione del file spostato.
Restituisce true
in caso di successo.
Se from
non è un file caricato valido,
allora non verrà compiuta alcuna azione e
move_uploaded_file() restituirà
false
.
Se from
è un file caricato valido, ma
non può essere spostato per qualche ragione, non verrà compiuto alcunchè e
move_uploaded_file() restituirà
false
. In più verrà emesso un avviso.
Example #1 Caricamento di più file
<?php
$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
// basename() può impedire attacchi di attraversamento del file system
// un'ulteriore convalida/sanificazione del nome del file può essere appropriata
$name = basename($_FILES["pictures"]["name"][$key]);
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}
?>
Nota:
move_uploaded_file() prende in considerazione open_basedir. Tuttavia, le restrizioni sono poste solo sul percorso definito da
to
per consentire lo spostamento dei file caricati in cuifrom
potrebbe entrare in conflitto con tali restrizioni. move_uploaded_file() garantisce la sicurezza di questa operazione consentendo lo spostamento solo dei file caricati tramite PHP.
Se il file di destinazione esiste già, esso verrà sovrascritto.