国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

vuejs+element-ui+laravel5.4上傳文件的示例代碼

來源:懂視網 責編:小采 時間:2020-11-27 22:32:56
文檔

vuejs+element-ui+laravel5.4上傳文件的示例代碼

vuejs+element-ui+laravel5.4上傳文件的示例代碼:前言 之前的文章講得太多安裝了,今天就不說這個了,因為我的項目是前后端分離的,所以基本是分開執行代碼邏輯。其中還有跨域問題,主要還是在laravel中添加頭信息放行之類的,這里會提一下做法。 element-ui的upload組件 我的vue代碼: <te
推薦度:
導讀vuejs+element-ui+laravel5.4上傳文件的示例代碼:前言 之前的文章講得太多安裝了,今天就不說這個了,因為我的項目是前后端分離的,所以基本是分開執行代碼邏輯。其中還有跨域問題,主要還是在laravel中添加頭信息放行之類的,這里會提一下做法。 element-ui的upload組件 我的vue代碼: <te

前言

之前的文章講得太多安裝了,今天就不說這個了,因為我的項目是前后端分離的,所以基本是分開執行代碼邏輯。其中還有跨域問題,主要還是在laravel中添加頭信息放行之類的,這里會提一下做法。

element-ui的upload組件

我的vue代碼:

<template>
 <el-upload
 :action="uploadAction"
 list-type="picture-card"
 :on-remove="handleRemove"
 :on-success="handleSuccess"
 :before-upload="handleBefore"
 :file-list="files">
 <i class="el-icon-plus"></i>
 </el-upload>
 <el-dialog v-model="dialogVisible" size="tiny">
 <img width="100%" :src="dialogImageUrl" alt="">
 </el-dialog>
</template>

這里說一下 on-preview與on-success都可以拿到服務器的返回路徑

其中:action="uploadAction"是服務器接引地址, list-type為限制上傳格式

而:on-remove="handleRemove"為移除圖片時對應的方法,:before-upload="handleBefore"

為上傳前的操作,這里我用于限制上傳的數量限制, :file-list="files"上傳后數據綁定在這里

這里我是使用:on-success="handleSuccess"來拿服務器的返回數據的

export default {
 data(){
 return {
 files: [],
 uploadAction:'http://服務器地址'
 }
 },
 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跨域需要添加一個中間件

在app/Http/middleware下 新建文件Cors.php,輸入

namespace App\Http\Middleware;

use Closure;

class Cors
{
 /**
 * Handle an incoming request.
 *
 * @param \Illuminate\Http\Request $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' => \App\Http\Middleware\Cors::class,
 ];

laravel 路由

調用中間件來限制路由,這里用了dingo api,如不清楚請看前面的文章

$api->version('v1', ['middleware' => 'cors'], function (Router $api) {
 $api->post('upfile', 'App\\Api\\V1\\Controllers\\Upload\\UploadFiles@upfile');
}

配置Store

打開config/filesystems.php 找到 disks

'disks' => [

 // 上面還有很多,下面是自己加的
 // 新建一個本地端uploads空間(目錄) 用于存儲上傳的文件
 'uploads' => [

 'driver' => 'local',

 // 文件將上傳到storage/app/uploads目錄
 'root' => storage_path('app/uploads'),

 // 文件將上傳到public/uploads目錄 如果需要瀏覽器直接訪問 請設置成這個
 //'root' => public_path('uploads'),
 ],
] 

開始上傳

新建一個上傳Controller, 下面很多判斷沒有做,自行做吧

AppApiV1ControllersUploadUploadFiles.php

namespace App\Api\V1\Controllers\Upload;


use Dingo\Api\Http\Request;
use Dingo\Api\Exception\StoreResourceFailedException;
use Storage;

class UploadFiles
{
 public function upfile(Request $request) {
 if (!$request->hasFile('file')) {
 return response()->json([], 500, '無法獲取上傳文件');
 }
 $file = $request->file('file');

 if ($file->isValid()) {
 // 獲取文件相關信息
 $originalName = $file->getClientOriginalName(); // 文件原名
 $ext = $file->getClientOriginalExtension(); // 擴展名
 $realPath = $file->getRealPath(); //臨時文件的絕對路徑
 $type = $file->getClientMimeType(); // image/jpeg

 // 上傳文件
 $filename = date('Ymd/His');
 // 使用我們新建的uploads本地存儲空間(目錄)
 $path = $file->store($filename, 'uploads');
 return response()->json([
 'status_code' => 200,
 'message' => 'success',
 'photo' => $path,
 'name' => $originalName,
 ]);

 } else {
 return response()->json([], 500, '文件未通過驗證');
 }
 }
}

到此,已經可以放上全部要用到的代碼了,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

vuejs+element-ui+laravel5.4上傳文件的示例代碼

vuejs+element-ui+laravel5.4上傳文件的示例代碼:前言 之前的文章講得太多安裝了,今天就不說這個了,因為我的項目是前后端分離的,所以基本是分開執行代碼邏輯。其中還有跨域問題,主要還是在laravel中添加頭信息放行之類的,這里會提一下做法。 element-ui的upload組件 我的vue代碼: <te
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 91第一页 | 岛国一区 | 精品二区 | 久久久久亚洲精品成人网小说 | 欧美亚洲网站 | 亚洲国产成人久久一区www妖精 | 国产欧美日韩精品在钱 | 国产精品久久久久久久 | 亚洲视频在线视频 | 亚洲色图国产精品 | 欧美爱爱动态图 | 日韩欧美一区二区三区免费看 | 久久精品国产999久久久 | 看全色黄大色大片免费久久久 | 国产精品日本一区二区不卡视频 | 亚洲午夜伦理 | 国产视频一区二区在线播放 | 国产手机在线国内精品 | 男女全黄一级带免费 | 免费毛片网 | 国模双双大尺度炮交g0go | 国产欧美综合精品一区二区 | 欧美在线aa| 精品国产一区二区三区免费看 | 国内精品91久久久久 | 成人黄色一级视频 | 欧美2区 | 亚洲美女一区二区三区 | 久久99精品久久久久久 | 欧美国产日韩另类 | 不卡一级aaa全黄毛片 | 一级毛片一级毛片一级毛片 | 成人国产激情福利久久精品 | 中文国产成人精品久久久 | 久国产精品视频 | 国产欧美日韩在线播放 | 亚洲国产婷婷综合在线精品 | 视频一区二区免费 | 成人精品在线视频 | 国产91久久精品一区二区 | 国产精品亚洲综合一区 |