Téléchargement de fichiers PHP
Les fichiers peuvent être téléchargés sur le serveur via PHP.
L'exemple de ce chapitre est réalisé dans le cadre du projet de test. La structure du répertoire est la suivante :
téléchargement du code source
|-----upload # 文件上传的目录 |-----form.html # 表单文件 |-----upload_file.php # php 上传代码
<. 🎜>Créer un formulaire de téléchargement de fichiers est très utile pour permettre aux utilisateurs de télécharger des fichiers à partir d'un formulaire. Veuillez consulter le formulaire HTML ci-dessous pour télécharger des fichiers :
<html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <form action="upload_file.php" method="post" enctype="multipart/form-data"> <label for="file">文件名:</label> <input type="file" name="file" id="file"><br> <input type="submit" name="submit" value="提交"> </form> </body> </html>Enregistrez le code ci-dessus dans le fichier form.html.
<form> enctype de la balise L'attribut spécifie le type de contenu à utiliser lors de la soumission du formulaire. Lorsqu'un formulaire nécessite des données binaires, telles que le contenu d'un fichier, utilisez "multipart/form-data". L'attribut
<input> de la balise type="file" spécifie que l'entrée doit être traitée comme un fichier. Par exemple, lors de la prévisualisation dans un navigateur, vous verrez un bouton Parcourir à côté de la zone de saisie.
Remarque : Autoriser les utilisateurs à télécharger des fichiers constitue un risque de sécurité énorme. Veuillez autoriser uniquement les utilisateurs de confiance à effectuer des opérations de téléchargement de fichiers.
Créez le script de téléchargement Le fichier "upload_file.php" contient le code pour télécharger les fichiers :
<?php if ($_FILES["file"]["error"] > 0) { echo "错误:" . $_FILES["file"]["error"] . "<br>"; } else { echo "上传文件名: " . $_FILES["file"]["name"] . "<br>"; echo "文件类型: " . $_FILES["file"]["type"] . "<br>"; echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"]; } ?>en utilisant le global de PHP array $_FILES, vous pouvez télécharger des fichiers de l'ordinateur client vers le serveur distant.
- $_FILES["file"]["name"] - le nom du fichier téléchargé
- $_FILES[ "file "]["type"] - Type de fichier téléchargé
- $_FILES["file"]["size"] - Taille du fichier téléchargé, en octets
- $_FILES["file"]["tmp_name"] - Le nom d'une copie temporaire du fichier stocké sur le serveur
- $_FILES[" file"] ["error"] - Code d'erreur provoqué par le téléchargement de fichiers
Limitation de téléchargementDans ce script, nous avons ajouté une limite sur les téléchargements de fichiers. Les utilisateurs ne peuvent télécharger que des fichiers .gif, .jpeg, .jpg, .png, et la taille du fichier doit être inférieure à 200 Ko :
<?php // 允许上传的图片后缀 $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); $extension = end($temp); // 获取文件后缀名 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) // 小于 200 kb && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "错误:: " . $_FILES["file"]["error"] . "<br>"; } else { echo "上传文件名: " . $_FILES["file"]["name"] . "<br>"; echo "文件类型: " . $_FILES["file"]["type"] . "<br>"; echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"]; } } else { echo "非法的文件格式"; } ?>
Enregistrement du fichier téléchargé
L'exemple ci-dessus crée une copie temporaire du fichier téléchargé dans le dossier temporaire PHP du serveur.
Cette copie temporaire disparaîtra à la fin du script. Pour enregistrer le fichier téléchargé, nous devons le copier vers un autre emplacement :
<?php // 允许上传的图片后缀 $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); echo $_FILES["file"]["size"]; $extension = end($temp); // 获取文件后缀名 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) // 小于 200 kb && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "错误:: " . $_FILES["file"]["error"] . "<br>"; } else { echo "上传文件名: " . $_FILES["file"]["name"] . "<br>"; echo "文件类型: " . $_FILES["file"]["type"] . "<br>"; echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"] . "<br>"; // 判断当期目录下的 upload 目录是否存在该文件 // 如果没有 upload 目录,你需要创建它,upload 目录权限为 777 if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " 文件已经存在。 "; } else { // 如果 upload 目录不存在该文件则将文件上传到 upload 目录下 move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "文件存储在: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "非法的文件格式"; } ?>Le script ci-dessus détecte si le fichier existe déjà. S'il n'existe pas, il copie le fichier dans un emplacement nommé ". télécharger le répertoire ".
L'opération de démonstration de téléchargement de fichiers est la suivante :
Tutoriels pratiques recommandés :