官网地址:https://element.eleme.cn/#/zh-CN/component/upload
HTML
<el-upload
ref="upload"
:limit="1"
accept=".bin"//接收的文件类型
:action="upload.url"//上传地址,data中获取
:headers="upload.headers"
:file-list="upload.fileList"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="true"//自动上传
>
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
<div slot="tip" class="el-upload__tip">只能上传bin文件</div>
</el-upload>
JS中添加
//data中添加
// 上传参数
upload: {
// 是否禁用上传
isUploading: false,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: '/upgradefile/uploadFile',//访问后台的路径
// 上传的文件列表
fileList: []
},
//方法中添加
this.upload.fileList = [];
// 文件提交处理
submitUpload() {
this.$refs.upload.submit();
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
if(response.code==200){
this.upload.isUploading = false;
this.form.filePath = response.msg;//获取文件路径,这个地方我把文件存储的路径回传在msg中,填充前台页面
}
else{
this.msgError(response.msg)
}
}
Controller中获取并保存到本地
/**
* 文件上传
* @param file
* @return 保存路径
* @throws IOException
*/
@PostMapping("/uploadFile")
public AjaxResult uploadFile(MultipartFile file) throws IOException {
String filePath= "E:/temp";
String filePath1 = FileUploadUtils.upload(filePath,file);//文件保存方法
return AjaxResult.success(filePath1);
}
效果:如下图,选取文件后自动上传,然后返回文件存储路径填充前台页面,之后进行其他处理。
