move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

move_uploaded_fileSposta un file caricato in una nuova posizione

Descrizione

move_uploaded_file(string $filename, string $destination): bool

Questa funzione verifica che il file indicato da filename 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 destination.

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

filename

Il nome del file caricato.

destination

La destinazione del file spostato.

Valori restituiti

Restituisce true in caso di successo.

Se filename non è un file caricato valido, allora non verrà compiuta alcuna azione e move_uploaded_file() restituirà false.

Se filename è 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 destination per consentire lo spostamento dei file caricati in cui filename 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.

Vedere anche: