国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

vuejs+element-ui+laravel5.4上傳文件

leap_frog / 1446人閱讀

摘要:前言之前的文章講得太多安裝了,今天就不說(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-previewon-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

相關(guān)文章

  • vuejs+element-ui+laravel5.4上傳文件

    摘要:前言之前的文章講得太多安裝了,今天就不說(shuō)這個(gè)了,因?yàn)槲业捻?xiàng)目是前后端分離的,所以基本是分開執(zhí)行代碼邏輯。其中還有跨域問(wèn)題,主要還是在中添加頭信息放行之類的,這里會(huì)提一下做法。 前言 之前的文章講得太多安裝了,今天就不說(shuō)這個(gè)了,因?yàn)槲业捻?xiàng)目是前后端分離的,所以基本是分開執(zhí)行代碼邏輯。其中還有跨域問(wèn)題,主要還是在laravel中添加頭信息放行之類的,這里會(huì)提一下做法。 element-ui...

    MingjunYang 評(píng)論0 收藏0
  • 餓了么組件庫(kù),element-ui開發(fā)精美的后臺(tái)管理系統(tǒng)系列之(一)開發(fā)伸縮菜單

    摘要:先看這個(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...

    whlong 評(píng)論0 收藏0
  • 開發(fā)中遇到的問(wèn)題總結(jié)

    摘要:獲取字符串中出現(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...

    wenshi11019 評(píng)論0 收藏0
  • 開發(fā)中遇到的問(wèn)題總結(jié)

    摘要:獲取字符串中出現(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...

    Yuqi 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<