Maison  >  Article  >  cadre php  >  Comment effectuer plusieurs opérations de téléchargement de fichiers dans ThinkPHP6 ?

Comment effectuer plusieurs opérations de téléchargement de fichiers dans ThinkPHP6 ?

王林
王林original
2023-06-12 09:07:031509parcourir

Avec les progrès continus de la technologie Internet, de plus en plus de sites Web et d'applications nécessitent des opérations de téléchargement de fichiers. Dans ce contexte, ThinkPHP6, en tant qu'excellent framework PHP, fournit également une méthode d'opération pratique pour télécharger plusieurs fichiers. Cet article explique comment effectuer plusieurs opérations de téléchargement de fichiers dans ThinkPHP6.

1. Codes associés pour le téléchargement de fichiers

Dans ThinkPHP6, le code pour le téléchargement de fichiers se trouve dans le fichier du contrôleur. Ce qui suit est un morceau de code pour télécharger un seul fichier :

public function upload()
{
    //获取上传的文件对象
    $file = request()->file('file');
    //将上传的文件移动到指定目录
    $info = $file->move('./uploads');
    if ($info) {
        //上传成功,返回文件名和路径
        return json(['code' => 0, 'msg' => '上传成功', 'data' => ['file_name' => $info->getFilename(), 'file_path' => '/uploads/'.$info->getSaveName()]]);
    } else {
        //上传失败,返回错误信息
        return json(['code' => 1, 'msg' => $file->getError()]);
    }
}

2. Étapes pour télécharger plusieurs fichiers

Ensuite, nous présenterons comment télécharger plusieurs fichiers dans ThinkPHP6. Les étapes spécifiques sont les suivantes :

1. Ajoutez plusieurs zones de téléchargement de fichiers dans l'interface frontale et définissez l'attribut name sur la même valeur.

<form enctype="multipart/form-data" method="post" action="#">
    <input type="file" name="files[]" multiple>
    <button type="submit">上传</button>
</form>

2. Définissez le code pour télécharger plusieurs fichiers dans le fichier du contrôleur.

public function upload()
{
    $files = request()->file('files');
    $data = array();
    foreach ($files as $file) {
        $info = $file->validate(['size' => 1024*1024*10, 'ext' => 'jpg,png,gif'])->move('./uploads');
        if ($info) {
            $data[] = ['file_name' => $info->getFilename(), 'file_path' => '/uploads/'.$info->getSaveName()];
        } else {
            return json(['code' => 1, 'msg' => $file->getError()]);
        }
    }
    return json(['code' => 0, 'msg' => '上传成功', 'data' => $data]);
}

Parmi eux, request()->file('files') peut obtenir plusieurs objets de fichier téléchargés et traiter le fonctionnement de chaque fichier téléchargé via une traversée de boucle.

3. Paramètres de téléchargement de plusieurs fichiers

Afin de garantir la sécurité et la légalité du téléchargement de plusieurs fichiers, nous pouvons également définir certains paramètres pour limiter la taille et le type de fichiers téléchargés, etc. Par exemple :

1. Limiter la taille d'un seul fichier

Dans l'exemple de code de cet article, nous passons validate(['size' => 1024102410, 'ext' => 'jpg, png,gif'] ) pour définir la taille d'un seul fichier téléchargé pour qu'elle ne dépasse pas 10 Mo.

2. Limiter les types de fichiers

Dans la fonction validate(), vous pouvez également limiter les types de fichiers téléchargés en définissant ext, par exemple : 'ext' => 'jpg, png, gif'

3.

Vous pouvez définir le nom du fichier téléchargé sur un nombre aléatoire unique via

$info = $file->move('./uploads', md5(uniqid()));

.

IV.Résumé

Cet article explique comment effectuer plusieurs opérations de téléchargement de fichiers dans ThinkPHP6. Vous devez utiliser request()->file('files') pour obtenir plusieurs objets de fichier téléchargés et utiliser une boucle foreach pour traiter. chaque fichier. télécharger des fichiers. Dans le même temps, nous pouvons également limiter la taille et le type de fichiers téléchargés en définissant des paramètres pour garantir la sécurité et la légalité de plusieurs fichiers téléchargés.

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