1.import-excel.vue添加方法
async getTemplate() {
window.location.href = '/admin/employee/template?fileName=' + '得分记录表.xlsx'
},
2.调用方法
<div class="drop">
<i class="el-icon-upload" />
<el-button type="text" @click="getTemplate">下载导入模板</el-button>
<span>将文件拖到此处或
<el-button type="text" @click="handleUpload">点击上传</el-button>
</span>
</div>
3.后端代码
// 下载resource下资源
@GetMapping("/template")
public void downloadTemplate(HttpServletRequest request, HttpServletResponse response){
String fileName = request.getParameter("fileName");
InputStream is = null;
OutputStream os = null;
try {
is = this.getClass().getClassLoader().getResourceAsStream("template"+ File.separator+fileName);
os = response.getOutputStream();
byte[] bytes = StreamUtils.copyToByteArray(is);
response.reset();
//下面这两行是为了解决跨域,如果没有跨域这两行可以删除
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
response.setContentType("application/octet-stream;charset=utf-8");
response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1));
response.addHeader("Content-Length", "" + bytes.length);
os.write(bytes);
os.flush();
}catch (Exception e) {
log.error("下载出错", e);
}finally {
try {
if(os != null) {
os.close();
}
if (is != null) {
is.close();
}
}catch (Exception e) {
log.error("关闭流出错", e);
}
}
}
本文暂时没有评论,来添加一个吧(●'◡'●)