Maison  >  Article  >  développement back-end  >  Comment effectuer le traitement de téléchargement de fichiers en PHP7.0 ?

Comment effectuer le traitement de téléchargement de fichiers en PHP7.0 ?

WBOY
WBOYoriginal
2023-05-26 08:21:111095parcourir

Avec le développement de l'ère Internet, le téléchargement de fichiers joue un rôle très important dans le développement de sites Web. Lorsque les utilisateurs doivent télécharger leurs propres avatars, photos ou autres fichiers, le site Web doit traiter les fichiers téléchargés. Dans PHP7.0, la façon dont le téléchargement de fichiers est géré est légèrement différente des versions précédentes. Cet article explique comment effectuer le traitement de téléchargement de fichiers dans PHP7.0.

1. Formulaire HTML pour le téléchargement de fichiers

Dans le formulaire HTML, la balise 3525558f8f338d4ea90ebf22e5cde2bc Vous devez définir l'attribut enctype sur "multipart/form-data", et la méthode de soumission est la méthode POST, par exemple :

<form action="upload.php" method="POST" enctype="multipart/form-data">
  <input type="file" name="file">
  <input type="submit" value="上传文件">
</form>

2. PHP traite les fichiers téléchargés

En PHP, utilisez le tableau $_FILES pour opérer les fichiers téléchargés fichiers. Lorsque l'utilisateur sélectionne un fichier et soumet le formulaire, le tableau $_FILES contiendra des informations sur le fichier téléchargé. Par exemple :

$_FILES['file']['name'] // 文件名
$_FILES['file']['type'] // 文件类型
$_FILES['file']['size'] // 文件大小
$_FILES['file']['tmp_name'] // 临时文件名
$_FILES['file']['error'] // 错误代码

où le nom du fichier temporaire est utilisé pour lire le contenu du fichier téléchargé une fois le téléchargement terminé. Nous verrons ensuite comment utiliser ces informations pour télécharger des fichiers.

3. Téléchargez le fichier et enregistrez-le sur le serveur

Vous pouvez utiliser la fonction move_uploaded_file() pour déplacer le fichier téléchargé du dossier temporaire vers le dossier cible spécifié. Par exemple :

$target_dir = "uploads/"; // 目标文件夹
$target_file = $target_dir . basename($_FILES["file"]["name"]); // 目标文件路径
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
    echo "文件上传成功";
} else {
    echo "文件上传失败";
}

Il convient de noter qu'avant de recevoir le fichier téléchargé, vous devez vous assurer que le dossier cible existe, sinon la fonction move_uploaded_file() échouera.

4. Erreurs dans la gestion des fichiers téléchargés

Certaines erreurs peuvent survenir lors du téléchargement de fichiers, telles que la taille du fichier téléchargé dépassant la taille convenue, un échec de téléchargement, etc. Nous pouvons utiliser l'attribut error dans le tableau $_FILES pour gérer ces erreurs.

switch ($_FILES["file"]["error"]) {
    case UPLOAD_ERR_OK: // 成功
        break;
    case UPLOAD_ERR_INI_SIZE: // 上传的文件超过了php.ini中的最大约束大小
    case UPLOAD_ERR_FORM_SIZE: // 上传的文件超过了HTML表单中的最大约束大小
        echo "文件太大";
        break;
    case UPLOAD_ERR_PARTIAL: // 文件只有部分被上传
        echo "文件上传失败";
        break;
    case UPLOAD_ERR_NO_FILE: // 没有文件被上传
        echo "请选择文件";
        break;
    case UPLOAD_ERR_NO_TMP_DIR: // 服务器未配置临时目录
    case UPLOAD_ERR_CANT_WRITE: // 无法将文件写入磁盘
    case UPLOAD_ERR_EXTENSION: // 文件不能通过PHP扩展上传
        echo "文件上传失败";
        break;
}

5. Vérifiez le type et la taille des fichiers téléchargés

Afin d'éviter le téléchargement illégal de fichiers, nous devons également vérifier le type et la taille des fichiers téléchargés. Par exemple, si seuls les fichiers de type image peuvent être téléchargés, vous pouvez utiliser la fonction getimagesize() pour déterminer le type de fichier.

$allowed_types = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF);
$type = exif_imagetype($_FILES["file"]["tmp_name"]);
if (!in_array($type, $allowed_types)) {
    echo "请选择正确的图像类型";
}

En même temps, la taille du fichier doit être vérifiée. Vous pouvez utiliser la fonction filesize() de PHP pour obtenir la taille du fichier, par exemple :

$max_size = 2 * 1024 * 1024; // 允许上传最大文件大小为2MB
if (filesize($_FILES["file"]["tmp_name"]) > $max_size) {
    echo "文件太大";
}

6.Résumé

En PHP7.0, le traitement du téléchargement de fichier a devenir plus sûr et plus simple. Vous pouvez obtenir des informations sur le fichier téléchargé via le tableau $_FILES, utiliser la fonction move_uploaded_file() pour enregistrer le fichier sur le serveur et vérifier le type et la taille du fichier téléchargé pour garantir que le fichier téléchargé est sûr et fiable.

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!

Déclaration:
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