Thinkphp3.2 résout le problème du téléchargement d'un seul fichier lors du téléchargement de plusieurs fichiers

一个新手
Libérer: 2023-03-16 13:48:01
original
1498 Les gens l'ont consulté

Page simple html :

code index.html :


<form action="{:U(&#39;index/upload&#39;)}" method="post" enctype="multipart/form-data">
    文件上传:<input type="file" name = "test[]">
    文件上传:<input type="file" name = "test[]">
    文件上传:<input type="file" name = "test[]">
    文件上传:<input type="file" name = "test[]">
    文件上传:<input type="file" name = "test[]">
    文件上传:<input type="file" name = "test[]">
    文件上传:<input type="file" name = "test[]">
    文件上传:<input type="file" name = "test[]">
    文件上传:<input type="file" name = "test[]">
    文件上传:<input type="file" name = "test[]">
    文件上传:<input type="file" name = "test[]">
    文件上传:<input type="file" name = "test[]">
    <input type="submit" value = "提交"></form>
Copier après la connexion

Contrôleur IndexController.class . code php :


<?php
namespace Home\Controller;use Think\Controller;class IndexController extends Controller {    
    public function index(){        
    $this->display();
    }    
    public function upload(){        
        if(IS_POST){            
        $config = array(                
              &#39;maxSize&#39;    =>    3145728,
                &#39;rootPath&#39;   =>    &#39;./Uploads/&#39;,
                &#39;savePath&#39;   =>    &#39;&#39;,
                &#39;saveName&#39;   =>    array(&#39;uniqid&#39;, mt_rand(1,999999).&#39;_&#39;.md5(uniqid())),
                &#39;exts&#39;       =>    array(&#39;jpg&#39;, &#39;gif&#39;, &#39;png&#39;, &#39;jpeg&#39;),
                &#39;autoSub&#39;    =>    true,
                &#39;subName&#39;    =>    array(&#39;date&#39;,&#39;Ymd&#39;),
            );            
            $upload = new \Think\Upload($config);// 实例化上传类
                  $info   =   $upload->upload();            
                  if(!$info) {                
                  $this->error($upload->getError());
            }else{                
                foreach($info as $file){                    
                echo $file[&#39;savepath&#39;].$file[&#39;savename&#39;];
                }
            }
        }else{            
            $this->display();
        }
    }
}
Copier après la connexion

Le résultat du téléchargement montre :

De nombreuses personnes travaillent sur plusieurs fichiers Lors du téléchargement, j'ai finalement découvert qu'une seule image avait été téléchargée, principalement à cause du nom. Comme elle porte le même nom, il ne reste qu'une seule image à la fin
Solution : Premièrement :

<. 🎜>

$config = array(                
                &#39;maxSize&#39;    =>    3145728,
                &#39;rootPath&#39;   =>    &#39;./Uploads/&#39;,
                &#39;exts&#39;       =>    array(&#39;jpg&#39;, &#39;gif&#39;, &#39;png&#39;, &#39;jpeg&#39;),
                &#39;autoSub&#39;    =>    true,
                &#39;subName&#39;    =>    array(&#39;date&#39;,&#39;Ymd&#39;),
                &#39;saveRule&#39;   => &#39;&#39;,
            );
Copier après la connexion
Laissez la saveRule dans $config vide. Le nom téléchargé est : 59c8d38cdb968.jpg

Si vous pensez que ce nom n'est pas fiable. , vous pouvez utiliser la deuxième méthode :


$config = array(                
                &#39;maxSize&#39;    =>    3145728,
                &#39;rootPath&#39;   =>    &#39;./Uploads/&#39;,
                &#39;saveName&#39;   =>    array(&#39;uniqid&#39;, mt_rand(1,999999).&#39;_&#39;.md5(uniqid())),
                &#39;exts&#39;       =>    array(&#39;jpg&#39;, &#39;gif&#39;, &#39;png&#39;, &#39;jpeg&#39;),
                &#39;autoSub&#39;    =>    true,
                &#39;subName&#39;    =>    array(&#39;date&#39;,&#39;Ymd&#39;),
            );
Copier après la connexion
Set $config: 'saveName' => array('uniqid', mt_rand(1,999999).' _ '.md5(uniqid())),

Le résultat final est similaire à : 672563_30ad4d8a2aafc832363de8edc1940b5c59c8d44a303f9.jpg

Bien sûr, le nom peut être modifié selon les besoins, et plusieurs fichiers peuvent être téléchargés. Il existe de nombreuses méthodes, voici juste une méthode simple et pratique !

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!