檔案上傳: 檔案上傳: 檔案上傳: 檔案上傳:
html簡單頁面:
index.html程式碼:
<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>
控制器IndexController.class.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( '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(); } } }
上傳結果顯示:
#好多人在進行多檔案上傳的時候,最後發現只是上傳了一張,主要就是命名所致,因為是同樣的名字,所以最後就剩一張圖片
解決方法:第一種:
$config = array( 'maxSize' => 3145728, 'rootPath' => './Uploads/', 'exts' => array('jpg', 'gif', 'png', 'jpeg'), 'autoSub' => true, 'subName' => array('date','Ymd'), 'saveRule' => '', );
置空$config裡面的saveRule,上傳後的名稱為:59c8d38cdb968.jpg
如果感覺這種命名不可靠,可採取第二種方法:
$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'), );
設定$config中: 'saveName' => array('uniqid', mt_rand(1,999999).'_'.md5(uniqid()) ),
其最後的結果類似於:672563_30ad4d8a2aafc832363de8edc1940b5c59c8d44a303f9.jpg
以上是Thinkphp3.2解決多檔案上傳只上傳一張的問題的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!