English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Caricamento dei file PHP
Con PHP, è possibile caricare file sul server.
Questa sezione di esempio è stata completata nel progetto test, la struttura della directory è:
test
|-----upload # Directory di caricamento dei file
|-----form.html # File del modulo
|-----upload_file.php # Codice di caricamento PHP
Scarica il codice sorgente:Caricamento dei file
Creare un modulo per il caricamento dei file
Permette agli utenti di caricare file tramite il modulo è molto utile.
Vedere di seguito questo modulo HTML per il caricamento dei file:
<html> <head> <meta charset="utf-8"> <title>鳥鷹教學(runoob.com)</title> </head> <body> <form action="upload_file.php" method="post" enctype="multipart/form-data"> <label for="file">Nome del file:</label> <input type="file" name="file" id="file"><br> <input type="submit" name="submit" value="Invia"> </form> </body> </html>
Salva il codice sopra nel file form.html.
Ecco alcune note importanti sul modulo HTML menzionato sopra:
1. L'attributo enctype del tag <form> specifica quale tipo di contenuto deve essere utilizzato per inviare il modulo. Usa "multipart/form-data" quando il modulo richiede dati binari, come il contenuto del file.
2. L'attributo type="file" del tag <input> specifica che l'input deve essere trattato come file. Ad esempio, quando si visualizza nel browser, vedrai un pulsante di navigazione accanto al campo di input.
Nota:Permettere agli utenti di caricare file rappresenta un rischio di sicurezza enorme. Permetti solo agli utenti fidati di eseguire operazioni di upload di file.
Creazione dello script di upload
Il file "upload_file.php" contiene il codice per caricare i file:
<?php if ($_FILES["file"]["error"] > 0) { echo "Errore: " . $_FILES["file"]["error"] . "<br>"; } else { echo "Nome del file caricato: " . $_FILES["file"]["name"] . "<br>"; echo "Tipo del file: " . $_FILES["file"]["type"] . "<br>"; echo "Dimensione del file: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "Posizione temporanea del file: " . $_FILES["file"]["tmp_name"]; } ?>
Utilizzando l'array globale di PHP $_FILES, puoi caricare file dal computer del cliente su un server remoto.
Il primo parametro è il nome dell'input del modulo, il secondo indice può essere "name", "type", "size", "tmp_name" o "error". Ecco un esempio:
$_FILES["file"]["name"] - Il nome del file caricato
$_FILES["file"]["type"] - Il tipo del file caricato
$_FILES["file"]["size"] - La dimensione del file caricato, in byte
$_FILES["file"]["tmp_name"] - Il nome temporaneo della copia del file memorizzata sul server
$_FILES["file"]["error"] - Codici di errore causati dall'upload dei file
Questo è un modo di upload di file molto semplice. Considerando la sicurezza, dovresti aggiungere limitazioni su quali utenti possono caricare file.
Limitazioni di upload
In questo script, abbiamo aggiunto limitazioni per l'upload dei file. Gli utenti possono caricare solo file .gif, .jpeg, .jpg, .png e la dimensione del file deve essere inferiore a 200 kB:
<?php // Estensioni di immagini ammesse per il caricamento $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); $extension = end($temp); // Ottenere l'estensione del file if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] < 204800) // Minore di 200 kb && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "Errore: " . $_FILES["file"]["error"] . "<br>"; } else { echo "Nome del file caricato: " . $_FILES["file"]["name"] . "<br>"; echo "Tipo del file: " . $_FILES["file"]["type"] . "<br>"; echo "Dimensione del file: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "Posizione temporanea del file: " . $_FILES["file"]["tmp_name"]; } } else { echo "Formato di file non consentito"; } ?>
Salvare il file caricato
L'esempio sopra crea una copia temporanea del file caricato nel cartella temporanea PHP del server.
Questa copia temporanea del file scompare alla fine dello script. Per salvare il file caricato, dobbiamo copiarlo in un'altra posizione:
<?php // Estensioni di immagini ammesse per il caricamento $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); echo $_FILES["file"]["size"]; $extension = end($temp); // Ottenere l'estensione del file if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] < 204800) // Minore di 200 kb && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "Errore: " . $_FILES["file"]["error"] . "<br>"; } else { echo "Nome del file caricato: " . $_FILES["file"]["name"] . "<br>"; echo "Tipo del file: " . $_FILES["file"]["type"] . "<br>"; echo "Dimensione del file: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "Posizione temporanea di archiviazione del file: " . $_FILES["file"]["tmp_name"] . "<br>"; // Verifica se il file esiste nella directory corrente della directory upload // Se non esiste la directory upload, devi crearla, la directory upload ha i permessi 777 if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " Il file esiste già. "; } else { // Se il file non esiste nella directory upload, il file viene caricato nella directory upload move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "Il file è memorizzato in: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "Formato di file non consentito"; } ?>
Lo script sopra controlla se il file esiste, se non esiste, copia il file nella directory denominata "upload".
Ecco come viene eseguita la dimostrazione di upload dei file:
Questo è tutto il contenuto dell'articolo, speriamo che sia utile per il tuo studio e che tu sostenga fortemente il tutorial di urla.
Dichiarazione: il contenuto di questo articolo è stato prelevato da Internet, il diritto d'autore spetta ai rispettivi autori, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato sottoposto a modifica manuale e non assume alcuna responsabilità legale correlata. Se trovi contenuti sospetti di violazione del copyright, sei invitato a inviare una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare, fornendo prove pertinenti. Una volta verificata, questo sito rimuoverà immediatamente il contenuto sospetto di violazione del copyright.