摘要:前言之前的文章講得太多安裝了,今天就不說(shuō)這個(gè)了,因?yàn)槲业捻?xiàng)目是前后端分離的,所以基本是分開執(zhí)行代碼邏輯。其中還有跨域問(wèn)題,主要還是在中添加頭信息放行之類的,這里會(huì)提一下做法。
前言
之前的文章講得太多安裝了,今天就不說(shuō)這個(gè)了,因?yàn)槲业捻?xiàng)目是前后端分離的,所以基本是分開執(zhí)行代碼邏輯。其中還有跨域問(wèn)題,主要還是在laravel中添加頭信息放行之類的,這里會(huì)提一下做法。
element-ui的upload組件我的vue代碼:
這里說(shuō)一下 on-preview與on-success都可以拿到服務(wù)器的返回路徑
其中:action="uploadAction"是服務(wù)器接引地址, list-type為限制上傳格式
而:on-remove="handleRemove"為移除圖片時(shí)對(duì)應(yīng)的方法,:before-upload="handleBefore"
為上傳前的操作,這里我用于限制上傳的數(shù)量限制, :file-list="files"上傳后數(shù)據(jù)綁定在這里
這里我是使用:on-success="handleSuccess"來(lái)拿服務(wù)器的返回?cái)?shù)據(jù)的
在
export default { data(){ return { files: [], uploadAction:"http://服務(wù)器地址" } }, methods: { handleSuccess(response){ console.log(response) this.files = [{name: response.name, url: imgBaseUrl + response.photo}] }, handleBefore(){ return this.files.length === 1 ? false : true // 只讓它上傳一張 }, handleRemove(file, fileList) { console.log(file, fileList) } } }laravel跨域
laravel跨域需要添加一個(gè)中間件
在app/Http/middleware下 新建文件Cors.php,輸入
namespace AppHttpMiddleware; use Closure; class Cors { /** * Handle an incoming request. * * @param IlluminateHttpRequest $request * @param Closure $next * @return mixed */ public function handle($request, Closure $next) { header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS"); header("Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token"); return $next($request); } }
在appHttpKernel.php
添加
protected $routeMiddleware = [ // some class "cors" => AppHttpMiddlewareCors::class, ];laravel 路由
調(diào)用中間件來(lái)限制路由,這里用了dingo api,如不清楚請(qǐng)看前面的文章
$api->version("v1", ["middleware" => "cors"], function (Router $api) { $api->post("upfile", "AppApiV1ControllersUploadUploadFiles@upfile"); }配置Store
打開config/filesystems.php 找到 disks
"disks" => [ // 上面還有很多,下面是自己加的 // 新建一個(gè)本地端uploads空間(目錄) 用于存儲(chǔ)上傳的文件 "uploads" => [ "driver" => "local", // 文件將上傳到storage/app/uploads目錄 "root" => storage_path("app/uploads"), // 文件將上傳到public/uploads目錄 如果需要瀏覽器直接訪問(wèn) 請(qǐng)?jiān)O(shè)置成這個(gè) //"root" => public_path("uploads"), ], ]開始上傳
新建一個(gè)上傳Controller, 下面很多判斷沒(méi)有做,自行做吧
AppApiV1ControllersUploadUploadFiles.php
namespace AppApiV1ControllersUpload; use DingoApiHttpRequest; use DingoApiExceptionStoreResourceFailedException; use Storage; class UploadFiles { public function upfile(Request $request) { if (!$request->hasFile("file")) { return response()->json([], 500, "無(wú)法獲取上傳文件"); } $file = $request->file("file"); if ($file->isValid()) { // 獲取文件相關(guān)信息 $originalName = $file->getClientOriginalName(); // 文件原名 $ext = $file->getClientOriginalExtension(); // 擴(kuò)展名 $realPath = $file->getRealPath(); //臨時(shí)文件的絕對(duì)路徑 $type = $file->getClientMimeType(); // image/jpeg // 上傳文件 $filename = date("Ymd/His"); // 使用我們新建的uploads本地存儲(chǔ)空間(目錄) $path = $file->store($filename, "uploads"); return response()->json([ "status_code" => 200, "message" => "success", "photo" => $path, "name" => $originalName, ]); } else { return response()->json([], 500, "文件未通過(guò)驗(yàn)證"); } } }
到此,已經(jīng)可以放上全部要用到的代碼了,喜歡的點(diǎn)個(gè)贊 =_=
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/25618.html
摘要:前言之前的文章講得太多安裝了,今天就不說(shuō)這個(gè)了,因?yàn)槲业捻?xiàng)目是前后端分離的,所以基本是分開執(zhí)行代碼邏輯。其中還有跨域問(wèn)題,主要還是在中添加頭信息放行之類的,這里會(huì)提一下做法。 前言 之前的文章講得太多安裝了,今天就不說(shuō)這個(gè)了,因?yàn)槲业捻?xiàng)目是前后端分離的,所以基本是分開執(zhí)行代碼邏輯。其中還有跨域問(wèn)題,主要還是在laravel中添加頭信息放行之類的,這里會(huì)提一下做法。 element-ui...
摘要:先看這個(gè)值即為判斷顯示展開還是收縮狀態(tài)的開關(guān)。這樣就實(shí)現(xiàn)了展開狀態(tài)下的菜單。如果有時(shí)間的話,我會(huì)把這個(gè)系列寫完,知道朋友們能獨(dú)立開發(fā)一個(gè)完整的的單頁(yè)面后臺(tái)管理程序。 涉及到路由,權(quán)限等等相關(guān)內(nèi)容的部分,跟本文主旨關(guān)系不大,所以我將會(huì)在另外一篇文章中詳述,混在一起的話內(nèi)容太多了 基于element-ui的左側(cè)可伸縮的菜單通過(guò)vuejs來(lái)開發(fā)支持展開收縮的菜單是非常簡(jiǎn)單的,只需要v-i...
摘要:獲取字符串中出現(xiàn)次數(shù)最多的字符。去掉字符串中的所有空格中對(duì)象數(shù)組按對(duì)象屬性排序 VUE 1、vue——解決You may use special comments to disable some warnings. Use // eslint-disable-next-line to ignore the next line. Use / eslint-disable / to ign...
摘要:獲取字符串中出現(xiàn)次數(shù)最多的字符。去掉字符串中的所有空格中對(duì)象數(shù)組按對(duì)象屬性排序 VUE 1、vue——解決You may use special comments to disable some warnings. Use // eslint-disable-next-line to ignore the next line. Use / eslint-disable / to ign...
閱讀 2950·2023-04-25 19:20
閱讀 799·2021-11-24 09:38
閱讀 2056·2021-09-26 09:55
閱讀 2442·2021-09-02 15:11
閱讀 2063·2019-08-30 15:55
閱讀 3619·2019-08-30 15:54
閱讀 3156·2019-08-30 14:03
閱讀 2969·2019-08-29 17:11