您好,登錄后才能下訂單哦!
這篇文章主要介紹了Thinkphp3.2中如何解決多文件上傳只上傳一張的問題,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
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中如何解決多文件上傳只上傳一張的問題”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。