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 图片 上一张 下一张 链接效果(续篇)
Apr 20 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
Apr 12 Javascript
JS实现随机化快速排序的实例代码
Aug 01 Javascript
使用js判断控件是否获得焦点
Jan 03 Javascript
jQuery中replaceAll()方法用法实例
Jan 16 Javascript
AngularJS优雅的自定义指令
Jul 01 Javascript
常用jQuery选择器汇总
Feb 02 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
May 25 Javascript
vue多层嵌套路由实例分析
Mar 19 Javascript
浅谈Vuex注入Vue生命周期的过程
May 20 Javascript
微信小程序入口场景的问题集合与相关解决方法
Jun 26 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
Nov 24 Javascript
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
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
2017/04/27 PHP
PHP里的$_GET数组介绍
2019/03/22 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
2019/12/11 PHP
Avengerls vs Newbee BO3 第二场2.18
2021/03/10 DOTA
jquery UI 1.72 之datepicker
2009/12/29 Javascript
读jQuery之二(两种扩展)
2011/06/11 Javascript
jQuery ajax 路由和过滤器使用说明
2011/08/02 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
javascript正则表达式中分组详解
2016/07/17 Javascript
Angularjs 自定义服务的三种方式(推荐)
2016/08/02 Javascript
JavaScript轻松创建级联函数的方法示例
2017/02/10 Javascript
使用bat打开多个cmd窗口执行gulp、node
2017/02/17 Javascript
详解Angular2组件之间如何通信
2017/06/22 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
解决Angular.js中使用Swiper插件不能滑动的问题
2018/02/26 Javascript
NodeJs操作MongoDB教程之分页功能以及常见问题
2019/04/09 NodeJs
bootstrap Table实现合并相同行
2019/07/19 Javascript
Python中的闭包实例详解
2014/08/29 Python
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
Python中优化NumPy包使用性能的教程
2015/04/23 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
Django后台获取前端post上传的文件方法
2018/05/28 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
python清空命令行方式
2020/01/13 Python
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
你常见到的runtime exception
2016/09/05 面试题
前台接待岗位职责
2013/12/03 职场文书
质量承诺书范文
2014/03/27 职场文书
任命书怎么写
2014/06/04 职场文书
学雷锋宣传标语
2014/06/25 职场文书
大专学生求职信
2014/07/04 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
聘用合同范本
2015/09/21 职场文书
JMeter对MySQL数据库进行压力测试的实现步骤
2022/01/22 MySQL