Laravel如何上傳文件實(shí)現(xiàn)示例
引言
最近失業(yè)在家,每天去圖書館閱讀大量的書籍。
名句:
人這一生機(jī)會很多,重要的機(jī)會只有一個(gè)
創(chuàng)業(yè)成功絕對不是靠技術(shù),而是靠市場
巨人公司的故事、企業(yè)助窮、Apple VS 諾亞機(jī)、微軟如何崛起
如何減壓 And 對抗焦慮
平面構(gòu)成(對稱與平衡,對比與調(diào)和)
情商課
1. 關(guān)切對方(就像父母對話孩子一樣的溫暖,天氣冷不冷?。?br />2. 學(xué)會道歉,有沒有嚇到你了 (對不起給你添麻煩了)
3. 共鳴 (那我們把空調(diào)開起來吧)
如下代碼
<?php namespace App\Http\Controllers\Api\Air\v_1_0; use App\Http\Controllers\Core\ApiController; use App\Models\LoginLog; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use OSS\OssClient; class FileController extends ApiController { public function uploadFile(Request $request) { $file = $request->file(); $ret = $this->_upload($file); echo json_encode($ret); exit; } protected function _upload($file) { $dir_name = empty($_GET['dir']) ? 'image' : trim($_GET['dir']); $storage_path = config('upload.storage'); $webpath_path = config('upload.webpath'); $image_path = $dir_name . '/' . date("Y-m") . '/'; $app_url = env('APP_URL') . '/'; if (!$file) { return array('error'=>1,'message'=>"文件上傳失敗,請檢查后重試"); } $ossConfig = config('oss.' . config('upload.ossflag')); if($ossConfig['bucket_addr']) { $app_url = $ossConfig['bucket_addr']; } foreach ($file as $k=>$v) { $tmpName = $v->getPathName(); $fileExtension = $v->getClientOriginalExtension(); $filePath = md5_file($tmpName) . '.' . $fileExtension; $file_size = $v->getSize(); if($file_size > config('upload.maxSize')) { return array('error'=>1,'message'=>"文件不可以超過50MB"); } if (!in_array(strtolower($fileExtension),config('upload.allowExts'))) { return array('error'=>1,'message'=>"文件類型不支持"); } //上傳成功后處理 if(config('oss.' . 'oss_open') == 1) { $oss = new OssClient($ossConfig['access_key_id'], $ossConfig['access_key_secret'], $ossConfig['endpoint']); $res = $oss->uploadFile($ossConfig['bucket'],$webpath_path . $image_path . $filePath,$v->getPathName()); if ($res) { $data['oss'] = 1; $data['attach_url'] = $ossConfig['bucket_addr'] . $webpath_path . $image_path . $filePath; } else { $data['attach_url'] = $app_url . $webpath_path . $image_path . $filePath; $data['oss'] = 0; } $data['time'] = time(); $attach_id = DB::table('attachment')->insertGetId($data); $attach_array[] = $attach_id; $attach_url[] = $data['attach_url']; } else { $data['oss'] = 0; $data['attach_url'] = $app_url. $webpath_path . $image_path . $filePath; $data['time'] = time(); $attach_id = DB::table('attachment')->insertGetId($data); $attach_array[] = $attach_id; $attach_url[] = $data['attach_url']; } if(!$data['oss'] || config('oss.' . 'is_delete') != 1) { $v->move($storage_path . $image_path, $filePath); unset($data); } return array('error'=>0,'attach'=>$attach_array,'url'=>$attach_url[0],'url_arr'=>$attach_url); } } }
以上就是Laravel如何上傳文件實(shí)現(xiàn)示例的詳細(xì)內(nèi)容,更多關(guān)于Laravel上傳文件的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Yii框架實(shí)現(xiàn)多數(shù)據(jù)庫配置和操作的方法
這篇文章主要介紹了Yii框架實(shí)現(xiàn)多數(shù)據(jù)庫配置和操作的方法,結(jié)合實(shí)例形式分析了Yii框架多數(shù)據(jù)庫的配置技巧與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2017-05-05PHP二維數(shù)組排序的3種方法和自定義函數(shù)分享
這篇文章主要介紹了PHP二維數(shù)組排序的3種方法和自定義函數(shù)分享,需要的朋友可以參考下2014-04-04thinkphp3.2中Lite文件替換框架入口文件或應(yīng)用入口文件的方法
這篇文章主要介紹了thinkphp3.2中Lite文件替換框架入口文件或應(yīng)用入口文件的方法,涉及ThinkPHP相關(guān)配置技巧,需要的朋友可以參考下2015-05-05laravel框架查詢數(shù)據(jù)集轉(zhuǎn)為數(shù)組的兩種方法
今天小編就為大家分享一篇laravel框架查詢數(shù)據(jù)集轉(zhuǎn)為數(shù)組的兩種方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10PHP獨(dú)立Session數(shù)據(jù)庫存儲操作類分享
這篇文章主要介紹了PHP獨(dú)立Session數(shù)據(jù)庫存儲操作類分享,需要的朋友可以參考下2014-06-06PHP 面向?qū)ο蟪绦蛟O(shè)計(jì)(oop)學(xué)習(xí)筆記 (四) - 異常處理類Exception
異常經(jīng)常被用來處理一些在程序正常執(zhí)行中遇到的各種類型的錯(cuò)誤。比如做數(shù)據(jù)庫鏈接時(shí),你就要處理數(shù)據(jù)庫連接失敗的情況。使用異??梢蕴岣呶覀兂绦虻娜蒎e(cuò)特性,從而使我們的應(yīng)用程序更加的穩(wěn)定和健壯。2014-06-06