使用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. SpringMVC学习01——HelloSpringMvc Demo

    HelloWorldController.java文件 package com.su.controller; import org.springframework.stereotype.Control ...

  2. AngleSharp 网络数据采集 -- 使用AngleSharp做html解析

    AngleSharp        AngleSharp is a .NET library that gives you the ability to parse angle bracket bas ...

  3. openstack 制作镜像以及windows向Linux中通过xshell传文件

    慢慢的也要把openstack一些相关的笔记整理上来了 之前由于主要是在看horizon 实验室搭建的openstack平台并没有怎么实际的用起来,前几天别的同学要用来测试大数据的相关服务,才把这些内 ...

  4. Smashing Nodejs 读书笔记(二)

    了不起的Node.js:将JavaScript进行到底 书名:SMASHING Node.js : JavaScript Everywhere 原作者:(美)劳奇 Rauch.G 译者:赵静 出版日期 ...

  5. Airbnb开源 快速搭建企业级BI数据平台

    最近在公司做一个数据可视化相关的项目,使用了Airbnb开源维护的企业级BI数据平台superset,相较于tableau这种收费的商业软件,Superset是开源维护的,同时图表的种类和颜值普遍偏高 ...

  6. 《A chorus section detection method for musical audio signals and its application to a music listening section》

    Abstract: 重复的副歌识别对音乐理解的计算模型(computational model)至关重要,应用层面有:音乐副歌识别预览,音乐检索等. 传统检测的难点:变调,起始点和结束点(both e ...

  7. RMAN备份与恢复 —— 参数文件还原

         在RMAN用语中,“还原”与“恢复”具有不同的含义,还原(restore)是指访问先前生成的备份集,从中得到一个或多个对象,然后再磁盘上的某个位置还原这些对象.还原与恢复时分离的.恢复(re ...

  8. python学习笔记(9):容器

    一.容器 0.判断所有的容器是否为空,用if not xxx(容器名):来进行判断 1.list 列表 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一 ...

  9. python 中PIL.Image和OpenCV图像格式相互转换

    PIL.Image转换成OpenCV格式: import cv2 from PIL import Image import numpy   image = Image.open("plane ...

  10. “没有找到mfc100u.dll”的解决方法

    现在需要安装 MindManager 2016 思维导图软件时,打开软件提示找不到 mfc100u.dll,无法执行程序.之前一直好好的,现在换电脑了安装提示这个问题,然后百度找的解决方案: 需要去微 ...