L'array superglobale $_FILES in PHP

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

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>

Scritto da Donato Pirolo

Ciao, sono Donato, frontend developer con una smisurata passione per la SEO. Creo strumenti ad hoc per aiutare aziende e professionisti ad essere cercati sul web e trovare clienti.

Potrebbero interessarti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Copyright © 2023
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram