Maison > développement back-end > tutoriel php > Connaissance pertinente et application du téléchargement de fichiers PHP

Connaissance pertinente et application du téléchargement de fichiers PHP

jacklove
Libérer: 2023-03-25 13:44:01
original
1538 Les gens l'ont consulté

Le

téléchargement de fichiers php joue un rôle important dans le site Web, et cet article l'explique en détail.

Créer un formulaire de téléchargement de fichiers

Il est très utile de permettre aux utilisateurs de télécharger des fichiers à partir d'un formulaire.

Regardez le formulaire HTML pour télécharger les fichiers ci-dessous :

<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">文件名:</label>    <input type="file" name="file" id="file"><br>    <input type="submit" name="submit" value="提交"></form></body></html>
Copier après la connexion

Enregistrez le code ci-dessus dans le fichier form.html.

Certaines notes sur le formulaire HTML ci-dessus sont répertoriées ci-dessous :

L'attribut enctype de la balise spécifie le type de contenu à utiliser lors de la soumission du formulaire. Utilisez "multipart/form-data" lorsque votre formulaire nécessite des données binaires, telles que le contenu d'un fichier. L'attribut type="file" de la balise

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éer un script de téléchargement

Le fichier "upload_file.php" contient le code pour télécharger les fichiers :

<?phpif ($_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"];}?>
Copier après la connexion

En utilisant le tableau global de PHP $_FILES, vos fichiers peuvent être téléchargés depuis un ordinateur client vers un serveur distant.

Le premier paramètre est le nom d'entrée du formulaire, et le deuxième indice peut être "name", "type", "size", "tmp_name" ou "error". Comme indiqué ci-dessous :

$_FILES["file"]["name"] - le nom du fichier téléchargé

$_FILES["file"]["type"] - le type du fichier téléchargé

$_FILES["file"]["size"] - Taille du fichier téléchargé en octets

$_FILES["file"]["tmp_name"] - Stocké sur le serveur Le nom de la copie temporaire du fichier

$_FILES["file"]["error"] - le code d'erreur provoqué par le téléchargement du fichier

C'est un très simple moyen de télécharger des fichiers. Pour des raisons de sécurité, vous devez ajouter des restrictions sur les personnes autorisées à télécharger des fichiers.

Limite de téléchargement

Dans 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 "非法的文件格式";}?>
Copier après la connexion

Enregistrez le fichier téléchargé

L'exemple ci-dessus est sur le serveur. Une copie temporaire du fichier téléchargé est créée dans le dossier temporaire PHP.

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 "非法的文件格式";}?>
Copier après la connexion

Cet article fournit une explication détaillée des fichiers de téléchargement PHP. Pour plus de matériel d'apprentissage, veuillez faire attention au site Web PHP chinois disponible. pour la visualisation.

Recommandations associées :

Boucles PHP - Comprendre la boucle While et l'utiliser

Instructions d'écho et d'impression PHP 5 Connaissance et application

Compréhension et application des variables magiques PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal