使用element-ui中的upload上传组件,前端上传数据参数已经传过去了,但是后端 (java) 接不到数据 (null)

【解决方案】

html部分:

       <el-button type="primary" v-show="type!=2" @click="updateActivity(1)">保存</el-button>

       <div class="uploadBox tx-lf">
<div class="fileBox">
模板导入
<input type="file" name="commodityFile" id="commodityFile" class="fileBtn" @change="uploadChange" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet">
</div>
<div class="el-upload__tip">只能上传xlsx文件,且不超过10M</div>
<div class="filename">{{fileName}}</div>
</div>

css部分:

     .fileBox{
width: 48px;
height: 14px;
padding: 9px 15px;
font-size: 12px;
position: relative;
overflow: hidden;
color: #fff;
background-color: #409EFF;
border-color: #409EFF;
border-radius: 3px;
.fileBtn{
position: absolute;
top:;
left:;
width: 100%;
height: 100%;
outline: none;
background: transparent;
filter: alpha(opacity=0);
-moz-opacity:;
-khtml-opacity:;
opacity:;
}
}

js部分:

     updateActivity(status){
//判断文件大小 文件不能超过10MB
let file = document.getElementById("commodityFile").files[0]?document.getElementById("commodityFile").files[0]:'';
if(file){
const isLt10M = file.size / 1024 / 1024 < 10;
if (!isLt10M) {
this.$message.error('上传文件大小不能超过 10MB!');
return false;
}
}
let styleNos = [];
if(this.tableData.length > 0){
this.tableData.forEach(item => {
styleNos.push(item.styleNo);
})
}
var form = new FormData();
form.append('activityName',this.formInline.activityName);
form.append('status',status);
form.append('startTime',this.formInline.startTime);
form.append('endTime',this.formInline.endTime);
form.append('tagId',this.formInline.tagId);
form.append('id',this.formInline.id);
form.append('styleNos',styleNos);
form.append("commodityFile", file);
this.axios.defaults.headers.post['Content-Type']='multipart/form-data;charse=UTF-8';
        this.axios({
method: 'post',
data: form,
transformRequest: [function(){
return form;
}],
url: '/activity/updateActivity',
})
.then(res => {
res = res.data;
if(res.state == 'success'){
this.$message.success(res.data);
}else{
this.$message.error(res.data);
}
});
},

参考文章:https://blog.csdn.net/weixin_34413802/article/details/88722992

前端通过axios和FormData实现文件上传功能遇到的坑的更多相关文章

  1. 使用Typescript重构axios(二十五)——文件上传下载进度监控

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...

  2. Vue实现多文件上传功能(前端 + 后端代码)

    本人业余前端开发,因为公司(很坑)觉得我很牛逼,所以让我前后端一起玩,无奈的我只能磕磕碰碰的研究起了vue. 开发项目的时候,用到文件上传的功能很常见,包括单文件上传和多文件上传,上传各种类型的文件. ...

  3. Multipart/form-data POST文件上传详解

    Multipart/form-data POST文件上传详解 理论 简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下: <form ...

  4. Multipart/form-data POST文件上传详解(转)

    Multipart/form-data POST文件上传详解 理论 简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下: <form ...

  5. 构建multipart/form-data实现文件上传

    构建multipart/form-data实现文件上传 通常文件上传都是通过form表单中的file控件,并将form中的content-type设置为multipart/form-data.现在我们 ...

  6. 前端使用 js 如何实现大文件上传

    前端使用 js 如何实现大文件上传 大文件上传 refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!

  7. 文件/大文件上传功能实现(JS+PHP)全过程

    文件/大文件上传功能实现(JS+PHP) 参考博文:掘金-橙红年代 前端大文件上传 路漫漫 其修远 PHP + JS 实现大文件分割上传 本文是学习文件上传后的学习总结文章,从无到有实现文件上传功能, ...

  8. 达到HTTP合约Get、Post和文件上传功能——采用WinHttp介面

    于<采用WinHttp实现HTTP协议Get.Post和文件上传功能>一文中,我已经比較具体地解说了怎样使用WinHttp接口实现各种协议. 在近期的代码梳理中,我认为Post和文件上传模 ...

  9. 学习ASP.NET Core Razor 编程系列十四——文件上传功能(二)

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

随机推荐

  1. UI自动化之特殊处理四(获取元素属性\爬取页面源码\常用断言)

    获取元素属性\爬取页面源码\常用断言,最终目的都是为了验证我们实际结果是否等于预期结果 目录 1.获取元素属性 2.爬取页面源码 3.常用断言 1.获取元素属性 获取title:driver.titl ...

  2. HttpModule 介绍

    引言 Http 请求处理流程 和 Http Handler 介绍 这两篇文章里,我们首先了解了Http请求在服务器端的处理流程,随后我们知道Http请求最终会由实现了IHttpHandler接口的类进 ...

  3. C#实现京东登录密码加密POST

    1.京东登录登录密码 function getEntryptPwd(pwd) { var pubKey = $('#pubKey').val(); if (!pwd || !pubKey || !Sy ...

  4. LeNet-5详解

    一.前言 LeNet-5出自论文Gradient-Based Learning Applied to Document Recognition,是一种用于手写体字符识别的非常高效的卷积神经网络. 本文 ...

  5. Mac入门--如何使用brew安装多个PHP版本

    一 安装7.1 1. 安装PHP7.1 brew install php@7.1 2. 修改配置 php-fpm.conf,一般在/usr/local/etc/php下(如果php-fpm.conf中 ...

  6. Java设计模式——模板方法设计模式(abstract修饰)

    解释: 一个抽象类中,有一个主方法,再定义 1...n 个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用. 解决的问题: 当功能内部一 ...

  7. 厉害了,Apache架构师们遵循的 30 条设计原则

    作者:Srinath 翻译:贺卓凡,来源:公众号ImportSource Srinath通过不懈的努力最终总结出了30条架构原则,他主张架构师的角色应该由开发团队本身去扮演,而不是专门有个架构师团队或 ...

  8. js数组中的引用类型

    我们看一下这个例子: let a={tile:'深复制'}; let b=a; a.title='浅复制'; 那么我们会获得两个对象,一个a,一个b,a的title是浅复制,b的title是深复制.但 ...

  9. highcharts控制X刻度值整数调整

    function chartData() { var app_id = $('.app_id').attr('app_id'); var gener_id = $('.gener_id').attr( ...

  10. python学习笔记(11):文件的访问与函数式编程

    一.文本文件读写的三种方法 1.直接读入 file1 = open('E:/hello/hello.txt') file2 = open('output.txt','w') #w是可写的文件 whil ...