- 第一种,使用formData对象
input的type=file选择文件,返回file对象,封装成formData使用ajax上传,HTML代码如下:
<input id="chooseFile" type="file" name="file" @change="uploadFile()"/>
Js代码如下:
uploadFile:function(){
var self = this;
var fileM = document.querySelector("#chooseFile");
var fileObj = fileM.files[0];
var formData = new FormData();
formData.append("file", fileObj);
var XHR = new XMLHttpRequest();
if (XHR) {
XHR.open("POST", "xxx/xxxXxxx");
XHR.onreadystatechange = function() {
if (XHR.readyState == 4 && XHR.status == 200) {
var resultValue = XHR.responseText;
if(resultValue=='successful'){
apiclound.toast("上传成功");
}else{
apiclound.toast("上传失败");
}
}
}
XHR.send(formData);
… }
},
后端代码如下:
@PostMapping("/upload")
public String upload(HttpServletRequest request) throws Exception {
}
- 第二种,from表达提交
form的enctype=“multipart/form-data” method=“POST”,input的type=file选择文件,直接form表达提交,HTML代码如下:
<form action="xxxXxxx" enctype="multipart/form-data" method="POST">
<input type="file" name="file" />
<input type="submit" value="提交" />
</form>
后端代码如下:
@PostMapping("/upload")
public Result upload(@RequestParam("file") MultipartFile file) throws Exception {
...
}
- 第三种,文件路径
获取文件路径(使用插件获取),后端读取文件的二进制流上传。