您好,登錄后才能下訂單哦!
小編給大家分享一下如何解決TP3.2批量上傳文件或圖片中同名沖突的問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
具體內容如下
1、html
<form action="{:U('Upload/index')}" enctype="multipart/form-data" method="post" > <p><input type="file" id="file3" name="ID[]" /></p> <p><input type="file" id="file4" name="ID[]" /></p> <input type="submit" value="上傳" /> <p><img id="img1" alt="" src="/Public/IMAGE/empty_thumb.gif" /></p> </form>
2、php
public function index(){ if(!empty($_FILES)){ $upload = new \Think\Upload();// 實例化上傳類 $upload->maxSize = 3145728; $upload->rootPath = './Uploads/'; $upload->savePath = 'image/'; //$upload->saveName = date('YmdHis').'-'.randomkeys(3);//msectime(),毫秒數13位 $upload->saveName = 'msectime'; //自定義函數,采用13位毫秒和3位隨機數 $upload->exts = array('jpg', 'gif', 'png', 'jpeg'); $upload->autoSub = true; $upload->subName = array('date','Ymd'); /* 判斷$_FILES[$key]是否:一維數組,單張圖片上傳 -xzz0703 * 原理:html的input type = "file" name="IDcard"和name="IDcard[]"的區別: * $_FILES前者到后臺php是二維數組,后者是三維數組 */ foreach($_FILES as $key=>$value){ if(count($_FILES[$key]) == count($_FILES[$key],1)){ $info = $upload->uploadOne($_FILES[$key]); if($info){ echo json_encode(array('code'=>200,'id'=>$img_id,'name'=>$img_name));exit; }else{ echo json_encode(array('code'=>0,'msg'=>$upload->getError()));exit; } } } if(count($_FILES)){ $info = $upload->upload();//如果是二維數組,使用批量上傳文件的方法 if(!$info){ $this->error($upload->getError()); exit; } $img_url = '/Uploads/'.$info[0]['savepath'].$info[0]['savename']; $res = array('imgPath2'=>$img_url,code=>$img_url,'msg'=>$info); echo json_encode($res); } } }
3、核心:很多朋友在使用TP3.2框架的時候,在saveName屬性上面被卡住了,原因就是上傳服務器處理級別的百萬微秒,很快。
解決:saveName = 13位的毫秒+3位隨機數,完美解決,具體代碼:
//返回當前的毫秒時間戳和隨機數合并的字符串 function msectime() { list($msec, $sec) = explode(' ', microtime()); $msectime = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000).randomkeys(3); return $msectime; }
以上是“如何解決TP3.2批量上傳文件或圖片中同名沖突的問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。