前言
之前的文章讲得太多安装了,今天就不说这个了,因为我的项目是前后端分离的,所以基本是分开执行代码逻辑。其中还有跨域问题,主要还是在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="/UploadFiles/2021-04-02/dialogImageUrl">这里说一下 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 "htmlcode">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, '文件未通过验证'); } } }到此,已经可以放上全部要用到的代码了,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]