添加附件和下载附件

上传文件时同时把(文件名 扩展名  文件大小 创建用户id  创建日期 路径 )同时保存到数据库里去

下载时根据相关id查询出(文件名 扩展名  文件大小 创建用户id  创建日期 路径 )再根据(文件名 扩展名  文件大小 创建用户id  创建日期 路径 )里的一些信息下载。

@PostMapping("addAccessory")

@ApiOperation(value = "添加事件附件", notes = "添加事件附件")
@ResponseBody
public ResponseEntity<ActionResponse<EventAccessory>> addAccessory(@RequestParam("file") MultipartFile file, EventAccessory eventAccessory) {
eventService.addEventAccessoryFile(file, eventAccessory);
EventAccessory ea = eventService.addEventAccessory(eventAccessory);
return ActionResponse.ok(ea);

}



public void addEventAccessoryFile(MultipartFile file, EventAccessory eventAccessory) {
String fileNameExtend = file.getOriginalFilename();
String fileName = fileNameExtend.substring(0, fileNameExtend.lastIndexOf("."));
String fileExtend = fileNameExtend.substring(fileNameExtend.lastIndexOf(".") + 1);
String eaName = this.getEventAccessoryName(eventAccessory.getRelatedNumber());
String eaSavePath = ExportExcelUtilsExpand.getRealPath();
File localFile = new File(eaSavePath + File.separator + ACCESSORY_DIRECTORY + File.separator + eaName + "." + fileExtend);
try {
file.transferTo(localFile);
eventAccessory.setName(fileName);
eventAccessory.setFileExtend(fileExtend);
eventAccessory.setFileSize((int)file.getSize());
eventAccessory.setPath(File.separator + ACCESSORY_DIRECTORY + File.separator + eaName + "." + fileExtend);
} catch(IOException e) {
log.error("添加附件失败{}", e);
throw new ExpectedException("添加附件失败");
}

}


public EventAccessory addEventAccessory(EventAccessory eventAccessory) {
/**
* 1,赋值
* 1)创建用户id取自session
* 2)创建日期取自数据库时间
*/
eventAccessory.setUserId(SessionUtil.getCurrentUser().getId());
eventAccessory.setCreateDate(DateUtilsExpand.getDateTime(DateUtilsExpand.yyyy_MM_dd, this.getSysDate()));
return eventAccessoryRepository.save(eventAccessory);

}


public static String getRealPath() {
ServletRequest request = ((WebSubject)SecurityUtils.getSubject()).getServletRequest();
HttpSession httpSession = ((HttpServletRequest)request).getSession();
return httpSession.getServletContext().getRealPath("/");

}



@GetMapping("downloadAccessory")
@ApiOperation(value = "下载事件附件", notes = "下载事件附件")
@ResponseBody
public void downloadAccessory(Integer id, HttpServletResponse resp) {
EventAccessory ea = eventService.getEventAccessory(id);
FileUtilsExpand.downloadFile(ea.getPath(), ea.getName() + "." + ea.getFileExtend(), resp);

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值