TP3.2批量上傳文件或圖片 同名沖突問(wèn)題的解決方法
本文實(shí)例為大家分享了TP3.2批量上傳文件或圖片的具體代碼,并解決了同名沖突問(wèn)題,供大家參考,具體內(nèi)容如下
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();// 實(shí)例化上傳類 $upload->maxSize = 3145728; $upload->rootPath = './Uploads/'; $upload->savePath = 'image/'; //$upload->saveName = date('YmdHis').'-'.randomkeys(3);//msectime(),毫秒數(shù)13位 $upload->saveName = 'msectime'; //自定義函數(shù),采用13位毫秒和3位隨機(jī)數(shù) $upload->exts = array('jpg', 'gif', 'png', 'jpeg'); $upload->autoSub = true; $upload->subName = array('date','Ymd'); /* 判斷$_FILES[$key]是否:一維數(shù)組,單張圖片上傳 -xzz0703 * 原理:html的input type = "file" name="IDcard"和name="IDcard[]"的區(qū)別: * $_FILES前者到后臺(tái)php是二維數(shù)組,后者是三維數(shù)組 */ 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();//如果是二維數(shù)組,使用批量上傳文件的方法 if(!$info){ $this->error($upload->getError()); exit; } $img_url = '/Uploads/'.$info[0]['savepath'].$info[0]['savename']; $res = array('imgPath1'=>$img_url,code=>$img_url,'msg'=>$info); echo json_encode($res); } } }
3、核心:很多朋友在使用TP3.2框架的時(shí)候,在saveName屬性上面被卡住了,原因就是上傳服務(wù)器處理級(jí)別的百萬(wàn)微秒,很快。
解決:saveName = 13位的毫秒+3位隨機(jī)數(shù),完美解決,具體代碼:
//返回當(dāng)前的毫秒時(shí)間戳和隨機(jī)數(shù)合并的字符串 function msectime() { list($msec, $sec) = explode(' ', microtime()); $msectime = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000).randomkeys(3); return $msectime; }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android使用OkHttp上傳圖片的實(shí)例代碼
- C# 中實(shí)現(xiàn)ftp 圖片上傳功能(多快好省)
- Android中Okhttp3實(shí)現(xiàn)上傳多張圖片同時(shí)傳遞參數(shù)
- 關(guān)于安卓手機(jī)微信瀏覽器中使用XMLHttpRequest 2上傳圖片顯示字節(jié)數(shù)為0的解決辦法
- iOS通過(guò)http post上傳圖片
- http圖片上傳安全性問(wèn)題 根據(jù)ContentType (MIME) 判斷其實(shí)不準(zhǔn)確、不安全
- ThinkPHP5.0 圖片上傳生成縮略圖實(shí)例代碼說(shuō)明
相關(guān)文章
Chart.js在Laravel項(xiàng)目中的應(yīng)用示例
本篇文章主要介紹了Chart.js在Laravel項(xiàng)目中的應(yīng)用示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09Win7下手動(dòng)安裝apache2.2、php5.4筆記
這篇文章主要介紹了Win7下手動(dòng)安裝apache2.2、php5.4筆記,本文是個(gè)人手動(dòng)操作記錄,需要的朋友可以參考下2015-04-04在win7中搭建Linux+PHP 開(kāi)發(fā)環(huán)境
這篇文章會(huì)以一個(gè)概覽的形式介紹我的 PHP 開(kāi)發(fā)環(huán)境,列出我使用的工具,但配置過(guò)程不會(huì)太詳細(xì)。有需要的朋友可以參考下。2014-10-10Yii Framework框架開(kāi)發(fā)微信公眾平臺(tái)示例
這篇文章主要介紹了Yii Framework框架開(kāi)發(fā)微信公眾平臺(tái),結(jié)合實(shí)例形式分析了使用Yii Framework框架開(kāi)發(fā)微信公眾平臺(tái)相關(guān)原理、功能代碼與實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-04-04Laravel事件系統(tǒng)實(shí)現(xiàn)瀏覽量的統(tǒng)計(jì)
Laravel的事件系統(tǒng)提供了一種簡(jiǎn)單而強(qiáng)大的方式來(lái)實(shí)現(xiàn)瀏覽量的統(tǒng)計(jì),通過(guò)創(chuàng)建瀏覽事件和事件監(jiān)聽(tīng)器,以及在合適的地方觸發(fā)事件,我們可以輕松地實(shí)現(xiàn)網(wǎng)頁(yè)瀏覽量的統(tǒng)計(jì)功能,本文將介紹如何使用Laravel的事件系統(tǒng)來(lái)實(shí)現(xiàn)瀏覽量的統(tǒng)計(jì)2024-03-03