本篇文章為大家展示了Thinkphp5實現(xiàn)圖片、音頻和視頻文件的上傳功能,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
網(wǎng)站的建設(shè)成都創(chuàng)新互聯(lián)公司專注網(wǎng)站定制,經(jīng)驗豐富,不做模板,主營網(wǎng)站定制開發(fā).小程序定制開發(fā),H5頁面制作!給你煥然一新的設(shè)計體驗!已為玻璃貼膜等企業(yè)提供專業(yè)服務(wù)。
首先是同步上傳,最為基礎(chǔ)的上傳的方式,點擊表單提交之后跳轉(zhuǎn)那種。
上傳文件
注意這里的enctype必須enctype="multipart/form-data"
,方案必須是post。
后端代碼直接拿tp5的官網(wǎng)示例代碼吧:
public function upload(){ // 獲取表單上傳文件 例如上傳了001.jpg $file = request()->file('image'); // 移動到框架應(yīng)用根目錄/public/uploads/ 目錄下 if($file){ $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads'); if($info){ // 成功上傳后 獲取上傳信息 // 輸出 jpg echo $info->getExtension(); // 輸出 20160820/42a79759f284b767dfcb2a0197904287.jpg echo $info->getSaveName(); // 輸出 42a79759f284b767dfcb2a0197904287.jpg echo $info->getFilename(); }else{ // 上傳失敗獲取錯誤信息 echo $file->getError(); } }; }
后面發(fā)現(xiàn)自己做的好簡單,于是改進了前端代碼,并且前端代碼實現(xiàn)了文件類型校驗,將同步改為ajax異步提交,同時改為formdata提交文件數(shù)據(jù),后臺代碼沒有太大變化,返回了提交文件的鏈接,而前端預(yù)覽只能預(yù)覽圖片。改過之后的前端代碼為
上傳文件
后端代碼改進了一下
public function uploadAjax(){ // 獲取表單上傳文件 例如上傳了001.jpg $file = request()->file('image'); $test=request()->post("test"); $src=[];//返回文件路徑 // 移動到框架應(yīng)用根目錄/public/uploads/ 目錄下 if($file){ $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads'); if($info){ // 成功上傳后 獲取上傳信息 // 輸出 jpg $info->getExtension(); // 輸出 20160820/42a79759f284b767dfcb2a0197904287.jpg $info->getSaveName(); // 輸出 42a79759f284b767dfcb2a0197904287.jpg $info->getFilename(); $src["src"]=DS.'public'.DS.'uploads'.DS.$info->getSaveName(); }else{ // 上傳失敗獲取錯誤信息 $file->getError(); } }; return json_encode($src); }
上述內(nèi)容就是Thinkphp5實現(xiàn)圖片、音頻和視頻文件的上傳功能,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。