@ApiOperation(value = "附件导出", notes = "附件导出")
@GetMapping("/exportfile")
public ResultBody exportfile(HttpServletResponse response, String id) {
try {
String filename = iUploadFService.findById(id);
int j = filename.lastIndexOf("-");
String name = filename.substring(0, j);
try {
// 防乱码
name = URLEncoder.encode(name,"UTF8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
// 读到流中
InputStream inStream = new FileInputStream(address+"/" + filename);// 文件的存放路径
// 设置输出的格式
response.reset();
response.addHeader("Content-Disposition", "attachment; filename=" + name);
// 循环取出流中的数据
byte[] b = new byte[100];
int len;
try {
while ((len = inStream.read(b)) > 0)
response.getOutputStream().write(b, 0, len);
inStream.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
log.error("附件导出失败", e);
return ResultBody.failure("附件导出失败");
}
return ResultBody.success("导出成功");
// 保存至服务器
public UploadFFile saveFile(MultipartFile file) {
if (file != null) {
// 获取上传文件名
String filename = file.getOriginalFilename();
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("MMddHHmmss");
String time = formatter.format(date);
String userName = sessionUtils.getEmpId();
try {
String targetName = address + "/" + filename +"-"+time;
File files = new File(targetName);
file.transferTo(files);
// 给数据库中保存
UploadFFile uploadFFile = new UploadFFile();
uploadFFile.setFileName(filename+"-"+time);
uploadFFile.setCreateUser(userName);
uploadFFile.setCreateTime(new Date());
return iUploadFRepository.save(uploadFFile);
} catch (IOException e) {
logger.error("上传文件失败", e);
}
}
return null;
}
目前支持图片和word导出 别的暂且没试