上传和下载的HTML
<el-dialog title="批量导入" v-model="batchImportVisible" draggable width="800px">
<el-upload class="upload-demo" drag action="http://localhost:8083/ft/est/uploadBatchImportTemplate"
multiple accept=".xlsx" :on-success="uploadFileSuccess" :on-error="uploadFileError" name="file">
<el-icon class="el-icon--upload">
<upload-filled/>
</el-icon>
<div class="el-upload__text">将文件拖放到此处或 <em>点击上传</em></div>
<template #tip>
<div class="el-upload__tip">小于500kb的xlsx文件</div>
</template>
</el-upload>
<a href="http://localhost:8083/ft/est/downloadBatchImportTemplate">
<el-button style="margin-left: 88%" size="default" type="success">下载模板</el-button>
</a>
</el-dialog>
<script>
// methods
// el-upload on-success 文件上传成功时的钩子 (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void
uploadFileSuccess(response) {
console.log(response)
if (response.code === 200) {
ElMessage.success(response.message)
} else {
ElMessage.error(response.message)
}
},
uploadFileError() {
console.log("上传失败")
},
</script>
JAVA
// 下载模板
@SneakyThrows
@RequestMapping("/downloadBatchImportTemplate")
public void downloadBatchImportTemplate(HttpServletRequest request, HttpServletResponse response) {
ClassPathResource resource = new ClassPathResource("static/批量分单模板.xlsx");
InputStream inputStream = resource.getInputStream();
byte[] bytes = toByteArray(inputStream);
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("批量分单模板.xlsx", "UTF-8"));
response.setContentType("application/octet-stream;charset=UTF-8");
response.addHeader("Content-Length", String.valueOf(bytes.length));
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(bytes);
outputStream.flush();
inputStream.close();
}
//上传Excel
@SneakyThrows
@RequestMapping("/uploadBatchImportTemplate")
public JsonResult<Object> uploadBatchImportTemplate(HttpServletRequest request, HttpServletResponse response, @RequestParam("file") MultipartFile multipartFiles) {
File file = File.createTempFile("temp", null);
multipartFiles.transferTo(file);
InputStream inputStream = new FileInputStream(file);
Workbook workbook = WorkbookFactory.create(inputStream);
inputStream.close();
Sheet sheet = workbook.getSheet("Sheet1");
// TODO 处理数据
return JsonResult.OK("上传成功!本次上传 " + sheet.getLastRowNum() + "条数据", "");
}