当前位置:网站首页>FormData upload binary file, object, object array
FormData upload binary file, object, object array
2022-08-02 07:50:00 【Yangge Landing】
FormData上传 MultipartFile文件; 通过表单上传MultipartFile文件与对象;FormDataUpload a list of objects
文章目录
一、FormData上传 MultipartFile文件
使用element的 el-upload组件上传文件.前端使用FormData 传输二进制文件
<template>
<div id="app">
<!-- formData的主要用处
1. Process form data in network requests
2. The network request processing is used to upload files asynchronously -->
<div class="upload">
<el-upload
class="upload-demo"
drag
action="#"
:multiple="false"
:auto-upload="false"
:on-change="onChange"
:on-remove="onRemove"
:file-list="fileList"
>
<i class="el-icon-upload" />
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>
<el-button size="medium" @click="upload">上传</el-button>
</div>
</div>
</template>
<script>
import UploadApi from '@/api/upload.js'
export default {
name: 'FormData',
data() {
return {
fileList: []
}
},
methods: {
onChange(file, fileList) {
this.fileList = []
this.fileList.push(file.raw)
},
onRemove() {
this.fileList = []
},
upload() {
const formData = new FormData()
formData.append('file', this.fileList[0])
// 请求服务端接口
UploadApi.formData(formData).then(res => {
this.$message.success(res)
}).catch(err => {
this.$message.error(err)
})
}
}
}
</script>
The backend server receives
@PostMapping("/formData")
public void useFormData(@RequestParam("file") MultipartFile file){
System.out.println(file.getName());
System.out.println(file.getBytes());
System.out.println(file.getInputStream());
}
二、 上传 MultipartFile文件和 数据
The front end still passesappend方法添加数据
upload() {
const formData = new FormData()
formData.append('file', this.fileList[0])
formData.append('time', 20220730)
// 请求服务端接口
UploadApi.formData(formData).then(res => {
this.$message.success(res)
}).catch(err => {
this.$message.error(err)
})
}
后端添加@RequestBody And the entity class object receives
@Data
public class Upload {
private long time;
}
@PostMapping("/formData")
public boolean useFormData(@RequestBody @RequestParam("file") MultipartFile file, Upload upload){
System.out.println(file.getName());
System.out.println(file.getBytes());
System.out.println(file.getInputStream());
System.out.println(upload.getTime());
}
三、Objects are included in the upload form data
前端append 方法添加数据
upload() {
const formData = new FormData()
formData.append('file', this.fileList[0])
formData.append('time', 20220730)
formData.append('bean.year', 2022)
formData.append('bean.month', 7)
formData.append('bean.day', 30)
// 请求服务端接口
UploadApi.formData(formData).then(res => {
this.$message.success(res)
}).catch(err => {
this.$message.error(err)
})
}
The backend server adds the receive object
@Data
public class Upload {
private long time;
private DayBean bean;
}
@Data
public class DayBean {
private int year;
private int month;
private int day;
}
@PostMapping("/formData")
public boolean useFormData(@RequestBody @RequestParam("file") MultipartFile file, Upload upload){
System.out.println(file.getName());
System.out.println(file.getBytes());
System.out.println(file.getInputStream());
System.out.println(upload.getTime());
DayBean bean = upload.getBean();
System.out.println("year:" + bean.getYear() + ", month:" + bean.getMonth() + ", day:" + bean.getDay());
}
四、Upload a list of objects
The front end needs to add data in a loop
upload() {
const formData = new FormData()
formData.append('file', this.fileList[0])
formData.append('time', 20220730)
for (var i = 0; i < 3; i++) {
formData.append('bean[' + i + '].year', 2022 + i)
formData.append('bean[' + i + '].month', 7 + i)
formData.append('bean[' + i + '].day', 30 + i)
}
// 请求服务端接口
UploadApi.formData(formData).then(res => {
this.$message.success(res)
}).catch(err => {
this.$message.error(err)
})
}
The backend server receives using a list of objects
@Data
public class Upload {
private long time;
private List<DayBean> bean;
}
@PostMapping("/formData")
public void useFormData(@RequestBody @RequestParam("file") MultipartFile file, Upload upload){
System.out.println(file.getName());
System.out.println(file.getBytes());
System.out.println(file.getInputStream());
System.out.println(upload.getTime());
List<DayBean> beanList = upload.getBean();
for (DayBean bean : beanList) {
System.out.println("year:" + bean.getYear() + ", month:" + bean.getMonth() + ", day:" + bean.getDay());
}
}
其他
1 设置multipart上传大小
@Configuration
public class MultipartThemeConfig {
@Bean
public MultipartConfigElement multipartConfig(){
MultipartConfigFactory factory = new MultipartConfigFactory();
//单个文件大小200MB,单位KB,MB
factory.setMaxFileSize(DataSize.parse("5MB"));
//单个文件大小200MB,单位KB,MB
factory.setMaxRequestSize(DataSize.parse("10MB"));
return factory.createMultipartConfig();
}
}
边栏推荐
猜你喜欢
随机推荐
MPLS的相关技术
“蔚来杯“2022牛客暑期多校训练营5,签到题KBGHFCD
(2022牛客多校五)D-Birds in the tree(树形DP)
View port number occupancy
【机器学习】实验4布置:AAAI会议论文聚类分析
MySQL-多版本并发控制
2022.07.31(LC_6132_使数组中所有元素都等于零)
Mysql报错2003 解决办法 Can‘t connect to MySQL server on ‘localhost‘ (10061)
mysql操作入门(四)-----数据排序(升序、降序、多字段排序)
暑假第五周总结
实例030:回文数
sql 远程访问链接服务器
【心电信号】基于matlab心率检测【含Matlab源码 1993期】
堡垒机、堡垒机的原理
MySQL批量更新
修改apt-get源为国内镜像源
OC-NSArray
OC-NSString
Link with Game Glitch(spfa判负环)
CSRF-跨站请求伪造-相关知识