L'array superglobale $_FILES in PHP
L'array superglobale $_FILES viene utilizzato per gestire i file caricati tramite un form HTML con l'attributo enctype="multipart/form-data"
. Questo array contiene informazioni come il nome del file, la dimensione e lo status di upload.
asd
Indice
Esempio di sintassi con $_FILES in php:
<?php
// L'array Superglobale $_FILES
if(isset($_POST['form1'])){ //se all'interno di $_POST è presente un array con chiave form1
var_dump($_FILES);
};
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Array $_FILES</title>
</head>
<body>
<form action="files.php" method="post" enctype="multipart/form-data">
<input type="file" name="file1">
<input type="submit" name="form1" value="carica file">
</form>
</body>
</html>
//output:
array(1) {
["file1"]=>
array(6) {
["name"]=> string(10) "sfondo.jpg"
["full_path"]=> string(10) "sfondo.jpg"
["type"]=> string(10) "image/jpeg"
["tmp_name"]=> string(24) "C:\xampp\tmp\phpED3B.tmp"
["error"]=> int(0)
["size"]=> int(267707)
}
}
Modificare la cartella di destinazione di un file caricato.
In questo esempio vediamo come modificare la cartella di destinazione del file, una volta che l'utente ha caricato il file.
Situazione iniziale:
- non conosciamo la cartella di base, ma possiamo estrapolarla usando l'array superglobale $_SERVER['DOCUMENT_ROOT']
- Sappiamo che il file caricato dall'utente viene ospitato in una cartella temporanea estraibile dall'array superglobale $_FILES['tmp_name']
- Possiamo riferirci alla funzione move_uploaded_file() per muovere il file dalla cartella temporanea ad una cartella designata da noi.
<?php
if(isset($_POST['form1'])){
$uploadPath = $_SERVER['DOCUMENT_ROOT'] . '/corsi/uploads/';
$fileTmp = $_FILES['file1']['tmp_name'];
move_uploaded_file($fileTmp, $uploadPath.'/'.$_FILES['file1']['name']);
};
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Array $_FILES</title>
</head>
<body>
<form action="files.php" method="post" enctype="multipart/form-data">
<input type="file" name="file1">
<input type="submit" name="form1" value="carica file">
</form>
</body>
</html>