Heim >Backend-Entwicklung >PHP-Tutorial >Lösen Sie das Problem, nur eine Datei hochzuladen, wenn Sie mehrere Dateien in Thinkphp3.2 hochladen
Einfache HTML-Seite:
index.html-Code:
<form action="{:U('index/upload')}" 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>
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( 'maxSize' => 3145728, 'rootPath' => './Uploads/', 'savePath' => '', 'saveName' => array('uniqid', mt_rand(1,999999).'_'.md5(uniqid())), 'exts' => array('jpg', 'gif', 'png', 'jpeg'), 'autoSub' => true, 'subName' => array('date','Ymd'), ); $upload = new \Think\Upload($config);// 实例化上传类 $info = $upload->upload(); if(!$info) { $this->error($upload->getError()); }else{ foreach($info as $file){ echo $file['savepath'].$file['savename']; } } }else{ $this->display(); } } }
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( 'maxSize' => 3145728, 'rootPath' => './Uploads/', 'exts' => array('jpg', 'gif', 'png', 'jpeg'), 'autoSub' => true, 'subName' => array('date','Ymd'), 'saveRule' => '', );
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( 'maxSize' => 3145728, 'rootPath' => './Uploads/', 'saveName' => array('uniqid', mt_rand(1,999999).'_'.md5(uniqid())), 'exts' => array('jpg', 'gif', 'png', 'jpeg'), 'autoSub' => true, 'subName' => array('date','Ymd'), );
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!