Heim > Backend-Entwicklung > PHP-Tutorial > Lösen Sie das Problem, nur eine Datei hochzuladen, wenn Sie mehrere Dateien in Thinkphp3.2 hochladen

Lösen Sie das Problem, nur eine Datei hochzuladen, wenn Sie mehrere Dateien in Thinkphp3.2 hochladen

黄舟
Freigeben: 2023-03-16 11:26:01
Original
1425 Leute haben es durchsucht

Einfache HTML-Seite:

index.html-Code:


<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>
Nach dem Login kopieren

Controller IndexController.class . PHP-Code:


<?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();
        }
    }
}
Nach dem Login kopieren

Das Upload-Ergebnis zeigt:

Viele Leute arbeiten an mehreren Beim Hochladen habe ich schließlich festgestellt, dass nur ein Bild hochgeladen wurde, hauptsächlich wegen der Namensgebung. Da es den gleichen Namen hat, ist am Ende nur noch ein Bild übrig
Lösung: Erstens:


$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;,
            );
Nach dem Login kopieren

Lassen Sie die saveRule in $config leer. Der hochgeladene Name lautet: 59c8d38cdb968.jpg

Wenn Sie der Meinung sind, dass dieser Name unzuverlässig ist , können Sie die zweite Methode verwenden:


$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;),
            );
Nach dem Login kopieren

Set $config: 'saveName' => array('uniqid', mt_rand(1,999999).' _ '.md5(uniqid())),
Das Endergebnis ist ähnlich wie: 672563_30ad4d8a2aafc832363de8edc1940b5c59c8d44a303f9.jpg

Natürlich kann die Benennung nach Bedarf geändert werden, und es können mehrere Dateien hochgeladen werden. Es gibt viele Methoden, hier ist nur eine einfache und bequeme Methode!

Das obige ist der detaillierte Inhalt vonLösen Sie das Problem, nur eine Datei hochzuladen, wenn Sie mehrere Dateien in Thinkphp3.2 hochladen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage