move_uploaded_file
(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
move_uploaded_file — Sposta un file caricato in una nuova posizione
Descrizione
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.
Elenco dei parametri
from
-
Il nome del file caricato.
to
-
La destinazione del file spostato.
Valori restituiti
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.
Esempi
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");
}
}
?>
Note
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 cui from
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.
Avviso
Se il file di destinazione esiste già, esso verrà sovrascritto.