VUE UPLOAD 通过ACTION返回上传结果操作


Posted in Javascript onSeptember 07, 2020

通过Upload 的action方法 返回不了结果,可以通过on-success方法中获取返回结果

<Upload accept=".xls, .xlsx" :action="uploadUrl" :on-success="onSuccess" :on-error="handleError" :before-upload="beforeUpload" style="float:right">
     <Button type="primary" icon="ios-cloud-upload-outline" >导入</Button>
 </Upload>
-----------------------------------------
computed: {
   uploadUrl() {    
   return baseUrl + "/ImportExcel/";   
  }
//file为ImportExcel方法返回的结果
onSuccess(file){
    if(file.code=="1")
    {
     this.$Message.error("导入失败:" + file.msg);
     return;
    }      
   },

补充知识:Element-UI中上传的action地址相对问题

我想要在vue里只出现上传地址后缀,然后具体的上传地址,前缀是项目配置里的服务器地址

1、action直接写相对地址

<el-upload
      class="import-btn"
      :action="/base_data/import_data"
      :data="uplaodData"
      name="files"
      :on-success="uploadSuccess"
      :on-error="uploadError"
      accept="xlsx,xls"
      :show-file-list="false">
      <el-button class="btn light small"><i class="icon iconfont icon-piliangdaoru"></i>批量导入</el-button>
     </el-upload>

这样的结果,上传请求的的前缀都是本地localhost:8080,并不是我想要的相对服务器的地址

2、屏蔽掉action地址,我自己写请求

<el-upload
      class="import-btn"
      :action="111" //这里随便写,反正用不到,但是又必须要写,无奈
      :before-upload="beforeUpload"
      :on-success="uploadSuccess"
      :on-error="uploadError"
      accept="xlsx,xls"
      :show-file-list="false">
      <el-button class="btn light small"><i class="icon iconfont icon-piliangdaoru"></i>批量导入</el-button>
     </el-upload>

methods里这么写

beforeUpload(file){
  let fd = new FormData();
  fd.append('files',file);//传文件
  fd.append('id',this.srid);//传其他参数
  axios.post('/api/up/file',fd).then(function(res){
      alert('成功');
  })
  return false //屏蔽了action的默认上传
},

这样的吧但是这样的我发过去的东西老是空的,应该是我不太懂FormData()的用法吧,但是我单独用FormData()的get方法,都能get到,后来发现是因为文件编码问题

默认的文件编码application/x-www-form-urlencoded是这个,但是上传文件需要的是multipart/form-data (这个格式的请求太好认, 一长串有没有,里面包括了文件名…),当然有时候也会是这样(files: (binary)),都是ok的

啊~,真的要郁闷了,最后还是让我发现了一种办法

那就是!!!

1、把全局配置的服务器地址引入

import url from '@/http/http'

2、在data里定义url:‘',

3、在create方法里this.url = url;

4、在上传组件的action上

<el-upload
      class="import-btn"
      :action="url+this.uploadUrl" //手动拼地址
      :data="uplaodData"
      name="files"
      :on-success="uploadSuccess"
      :on-error="uploadError"
      accept="xlsx,xls"
      :show-file-list="false">
      <el-button class="btn light small"><i class="icon iconfont icon-piliangdaoru"></i>批量导入</el-button>
     </el-upload>

好了,都好了,相对地址是服务器地址,上传文件编码也是multipart/form-data

以上这篇VUE UPLOAD 通过ACTION返回上传结果操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 使用手册(二)
Sep 23 Javascript
Function.prototype.call.apply结合用法分析示例
Jul 03 Javascript
jQuery操作表格(table)的常用方法、技巧汇总
Apr 12 Javascript
Javascript 实现复制(Copy)动作方法大全
Jun 20 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
Aug 23 Javascript
JS实现重新加载当前页面或者父页面的几种方法
Nov 30 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
Mar 25 jQuery
JS 实现banner图片轮播效果(鼠标事件)
Aug 04 Javascript
详解vue 实例方法和数据
Oct 23 Javascript
vue实现Excel文件的上传与下载功能的两种方式
Jun 28 Javascript
vue使用过滤器格式化日期
Jan 20 Vue.js
vue首次渲染全过程
Apr 21 Vue.js
vue中element 的upload组件发送请求给后端操作
Sep 07 #Javascript
vue-simple-uploader上传成功之后的response获取代码
Sep 07 #Javascript
Vue.js暴露方法给WebView的使用操作
Sep 07 #Javascript
三步搞定:Vue.js调用Android原生操作
Sep 07 #Javascript
vue单应用在ios系统中实现微信分享功能操作
Sep 07 #Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
Sep 07 #Javascript
一篇文章带你从零快速上手Rollup
Sep 07 #Javascript
You might like
可快速识别放射性物质-国外大神教你diy一个开放式辐射探测器
2020/03/12 无线电
php之字符串变相相减的代码
2007/03/19 PHP
PHP多进程编程实例
2014/10/15 PHP
php 实现进制相互转换
2016/04/07 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
ExtJS 2.0实用简明教程 之Ext类库简介
2009/04/29 Javascript
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
jQuery的初始化与对象构建之浅析
2011/04/12 Javascript
jquery入门必备的基本认识及实例(整理)
2013/06/24 Javascript
简介JavaScript中strike()方法的使用
2015/06/08 Javascript
JavaScript实现添加及删除事件的方法小结
2015/08/04 Javascript
jQuery实现批量判断表单中文本框非空的方法(2种方法)
2015/12/09 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
seajs实现强制刷新本地缓存的方法分析
2017/10/16 Javascript
VUE前端cookie简单操作
2017/10/17 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
Angular5中调用第三方库及jQuery的添加的方法
2018/06/07 jQuery
基于vue+echarts 数据可视化大屏展示的方法示例
2020/03/09 Javascript
vue如何在项目中调用腾讯云的滑动验证码
2020/07/15 Javascript
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
[45:18]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第一场
2018/04/04 DOTA
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python使用正则表达式实现文本替换的方法
2017/04/18 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
Python解决走迷宫问题算法示例
2018/07/27 Python
浅谈解除装饰器作用(python3新增)
2018/10/15 Python
Python多进程入门、分布式进程数据共享实例详解
2019/06/03 Python
使用TensorFlow-Slim进行图像分类的实现
2019/12/31 Python
Python如何定义有默认参数的函数
2020/08/10 Python
秋季运动会通讯稿
2014/01/24 职场文书
学生会离职感言
2014/02/11 职场文书
酒店行政人事部经理职务说明书
2014/02/26 职场文书
趣味运动会广播稿
2014/09/13 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS
分享CSS盒子模型隐藏的几种方式
2022/02/28 HTML / CSS