Cet article présente principalement en détail la méthode de téléchargement de fichiers PHP et son analyse des informations.
L'utilisation de PHP pour implémenter la fonction de téléchargement de fichiers est relativement courante dans le développement de projets PHP, mais cela peut être difficile pour certains novices. Ci-dessous, nous l'expliquerons en détail à travers des exemples de code spécifiques.
Créez d'abord un formulaire HTML pour le téléchargement de fichiers
L'exemple de code est le suivant :
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> 选择文件进行上传: <input type="file" name="file"> <input type="submit" value="上传"> </form> </body> </html>
Le l'effet est le suivant :
Dans le code ci-dessus, nous définissons le type de fichier sur le bouton d'entrée et définissons le nom du fichier téléchargé sur file . Lorsque nous cliquons pour sélectionner un fichier ou une image, les données du formulaire seront envoyées à upload.php, puis les opérations associées seront effectuées sur le fichier téléchargé.
Ensuite, dans le fichier upload.php, nous définirons une méthode pour analyser les informations pertinentes du fichier téléchargé
L'exemple de code spécifique est le suivant :
<?php $fileInfo = $_FILES['file']; var_dump($_FILES['file']); function upload_file($fileInfo, $upload = "./upload", $imagesExt = ['gif', 'png', 'jpg']) { if ($fileInfo['error'] === 0) { $ext = strtolower(pathinfo($fileInfo['name'], PATHINFO_EXTENSION)); if (!in_array($ext, $imagesExt)) { return "文件非法类型"; } if (!is_dir($upload)) { mkdir($upload, 0777, true); } $fileName = md5(uniqid(microtime(true), true)) . "." . $ext; $destName = $upload . "/" . $fileName; if (!move_uploaded_file($fileInfo['tmp_name'], $destName)) { return "文件上传失败!"; } return "文件上传成功!"; } else { switch ($fileInfo['error']) { case 1: echo '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值'; break; case 2: echo '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值'; break; case 3: echo '文件只有部分被上传'; break; case 4: echo '没有文件被上传'; break; case 6: echo '找不到临时文件夹'; break; case 7: echo '文件写入失败'; break; } } } var_dump(upload_file($fileInfo));
Astuce
: error représente le message d'erreur. Le numéro d'erreur ici est 0, ce qui signifie que le fichier téléchargé ne contient aucune erreur. Mais dans le manuel PHP, le numéro d'erreur est supérieur à 0.Ce qui suit est un bref résumé des numéros d'erreur sous forme de tableau
值为 0 |
值为 1 | 值为 2 | 值为 3 | 值为 4 | 值为 6 | 值为 7 |
没有错误发生,文件上传成功。 | 上传的文件超过了php.ini中 upload_max_filesize 选项限制的值。 | 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 | 文件只有部分被上传。 | 没有文件被上传 | 找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。 | 文件写入失败。PHP 5.1.0 引进。 |
La valeur est 0 | La valeur est 1 | La valeur est 2 | La valeur est 3 | La valeur est 4 | La valeur est 6 | La valeur est 7 |
Aucune erreur ne s'est produite et le fichier a été téléchargé avec succès. | Le fichier téléchargé dépasse la valeur limitée par l'option upload_max_filesize dans php.ini. | La taille du fichier téléchargé dépasse la valeur spécifiée par l'option MAX_FILE_SIZE dans le formulaire HTML. | Seule une partie du fichier a été téléchargée. | Aucun fichier téléchargé | Le dossier temporaire est introuvable. Introduit dans PHP 4.3.10 et PHP 5.0.3. | Échec de l'écriture du fichier. Introduit dans PHP 5.1.0. |
Utilisez ensuite if else et changez de déclaration de jugement pour juger les fichiers téléchargés un par un.
La méthode ici est basée sur le type de fichier, l'existence du dossier de téléchargement et le message d'erreur. Enfin, après avoir téléchargé une image, l'effet final affiché est le suivant :Remarque :
md5() dans le code ci-dessus La fonction n'est pas utilisée pour le cryptage, mais pour l'encodage.L'article ci-dessus concerne la méthode spécifique de téléchargement de fichiers PHP. J'espère qu'il sera utile aux amis dans le besoin ! Le tutoriel vidéo correspondant est [Méthode d'analyse des informations de téléchargement de fichiers PHP et de téléchargement d'encapsulation
] pour votre référence !
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!