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 相关文章推荐
javascript 火狐(firefox)不显示本地图片问题解决
Jul 05 Javascript
开发跨浏览器javascript常见注意事项
Jan 01 Javascript
JS脚本defer的作用示例介绍
Jan 02 Javascript
动态添加删除表格行的js实现代码
Feb 28 Javascript
table行随鼠标移动变色示例
May 07 Javascript
JS选项卡动态替换banner图片路径的方法
May 11 Javascript
javascript之Array 数组对象详解
Jun 07 Javascript
详解网站中图片日常使用以及优化手法
Jan 09 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
Jan 18 Javascript
canvas知识总结
Jan 25 Javascript
微信小程序版翻牌小游戏
Jan 26 Javascript
微信小程序城市选择及搜索功能的方法
Mar 22 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
ThinkPHP多语言支持与多模板支持概述
2014/08/22 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
再次分享18个非常棒的jQuery表格插件
2011/04/10 Javascript
动态创建样式表在各浏览器中的差异测试代码
2011/09/13 Javascript
jquery命令汇总,方便使用jquery的朋友
2012/06/26 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
JavaScript实现向右伸出的多级网页菜单效果
2015/08/25 Javascript
javascript每日必学之条件分支
2016/02/17 Javascript
浅析Bootstrap验证控件的使用
2016/06/23 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
Bootstrap轮播图学习使用
2017/02/10 Javascript
ES6数组的扩展详解
2017/04/25 Javascript
详解JavaScript 的变量
2019/03/08 Javascript
js实现百度登录窗口拖拽效果
2020/03/19 Javascript
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
Python 文件和输入输出小结
2013/10/09 Python
python实现调用其他python脚本的方法
2014/10/05 Python
Python random模块常用方法
2014/11/03 Python
python简单文本处理的方法
2015/07/10 Python
对python遍历文件夹中的所有jpg文件的实例详解
2018/12/08 Python
python lxml中etree的简单应用
2019/05/10 Python
python利用openpyxl拆分多个工作表的工作簿的方法
2019/09/27 Python
Pytorch 使用不同版本的cuda的方法步骤
2020/04/02 Python
意大利奢侈品网站:Italist
2016/08/23 全球购物
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
中学生社区服务活动报告
2015/02/05 职场文书
药店营业员岗位职责
2015/04/14 职场文书
毕业设计论文致谢词
2015/05/14 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
创业计划书之面包店
2019/09/12 职场文书
Django 实现jwt认证的示例
2021/04/30 Python
Redis实现订单自动过期功能的示例代码
2021/05/08 Redis
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL
vue组件vue-esign实现电子签名
2022/04/21 Vue.js