Laravel如何上傳文件實(shí)現(xiàn)示例
引言
最近失業(yè)在家,每天去圖書館閱讀大量的書籍。
名句:
人這一生機(jī)會(huì)很多,重要的機(jī)會(huì)只有一個(gè)
創(chuàng)業(yè)成功絕對(duì)不是靠技術(shù),而是靠市場(chǎng)
巨人公司的故事、企業(yè)助窮、Apple VS 諾亞機(jī)、微軟如何崛起
如何減壓 And 對(duì)抗焦慮
平面構(gòu)成(對(duì)稱與平衡,對(duì)比與調(diào)和)
情商課
1. 關(guān)切對(duì)方(就像父母對(duì)話孩子一樣的溫暖,天氣冷不冷?。?br />2. 學(xué)會(huì)道歉,有沒有嚇到你了 (對(duì)不起給你添麻煩了)
3. 共鳴 (那我們把空調(diào)開起來(lái)吧)
如下代碼
<?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'=>"文件上傳失敗,請(qǐng)檢查后重試");
}
$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'=>"文件不可以超過(guò)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上傳文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
php while循環(huán)得到循環(huán)次數(shù)
在for循環(huán)中,我們很容易得到循環(huán)次數(shù),因?yàn)槭亲鳛闂l件出現(xiàn)的。在while也可以得到,如下:2013-10-10
Laravel 實(shí)現(xiàn)數(shù)據(jù)軟刪除功能
這篇文章主要介紹了Laravel 實(shí)現(xiàn)數(shù)據(jù)軟刪除功能,文中給大家提到了軟刪除功能的實(shí)現(xiàn)方法,需要的朋友可以參考下2019-08-08
實(shí)例介紹PHP的Reflection反射機(jī)制
這篇文章主要介紹了實(shí)例介紹PHP的Reflection反射機(jī)制,本文從使用Reflection獲取一個(gè)類的信息角度來(lái)介紹PHP的Reflection反射機(jī)制,需要的朋友可以參考下2014-08-08
laravel5.5框架的上傳圖片功能實(shí)例分析【僅傳到服務(wù)器端】
這篇文章主要介紹了laravel5.5框架的上傳圖片功能,結(jié)合實(shí)例形式分析了laravel5.5框架將圖片上傳到服務(wù)器端的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-12-12
PHP程序員簡(jiǎn)單的開展服務(wù)治理架構(gòu)操作詳解(二)
這篇文章主要介紹了PHP程序員簡(jiǎn)單的開展服務(wù)治理架構(gòu)操作,結(jié)合實(shí)例形式分析了rpc客戶端與服務(wù)器相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-05-05
解決laravel5中auth用戶登錄其他頁(yè)面獲取不到登錄信息的問(wèn)題
今天小編就為大家分享一篇解決laravel5中auth用戶登錄其他頁(yè)面獲取不到登錄信息的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10

