springMVC实现文件上传 删除 下载

本文介绍了一个基于Java的文件上传、下载及删除的功能实现方法,包括处理文件上传过程中的信息保存、异常处理,以及文件的下载和删除操作。
// 附件上传
@RequestMapping(value = "/uploadfile", method = RequestMethod.POST)
@ResponseBody
public Object uploadTest(@RequestParam(required = false, value = "file") MultipartFile file,
@RequestParam(required = false, value = "expoid") String expoid, HttpServletRequest request, HttpServletResponse response)
throws IOException {
Map<String, Object> reMap = new HashMap<String, Object>();
User user = UserUtils.getUser();
String path = request.getSession().getServletContext().getRealPath("fujianTemplate");
String fileName = file.getOriginalFilename();
String newFileName = expoid + "_fujian.doc";
File targetFile = new File(path, newFileName);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
// 保存
try {
file.transferTo(targetFile);
Boolean bool = exhibitionpoService.saveUpload(user.getName(), newFileName, expoid);
if(bool==true){
reMap.put("message", "文件信息保存成功!");
Exhibitionpo ex = exhibitionpoService.uploadAccessory(expoid);
reMap.put("uploadName", ex.getUploadName());
reMap.put("urlName", ex.getUrlName());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = sdf.format(ex.getUploadTime());
reMap.put("uploadTime", dateStr);
reMap.put("mess", "附件上传上传成功!");
} else if (bool == false) {
reMap.put("mess", "附件上传上传失败!");
}
 
} catch (Exception e) {
e.printStackTrace();
}
 
return reMap;
}
 
// 文件删除
@ResponseBody
@RequestMapping(value = "/delFujianFile", method = RequestMethod.POST)
public Object delFujianFile(@RequestParam("expoid") String expoid, HttpServletResponse response, HttpServletRequest request)
throws Exception {
Map<String, Object> reMap = new HashMap<String, Object>();
// 文件路径
String path = request.getSession().getServletContext().getRealPath("fujianTemplate");
String newFileName = expoid + "_fujian.doc";
File targetFile = new File(path, newFileName);
if (targetFile.exists()) {
targetFile.delete();
Boolean bool = exhibitionpoService.deleteFile(expoid);
if (bool == true) {
reMap.put("mess", "附件删除成功!");
} else {
reMap.put("mess", "附件删除失败!");
}
 
} else {
reMap.put("mess", "附件不存在!");
}
return reMap;
}
// 文件下载
@ResponseBody
@RequestMapping(value = "/downFujianFile", method = RequestMethod.GET)
public ModelAndView downFujianFile(@RequestParam("expoid") String expoid, HttpServletResponse response,
HttpServletRequest request)
throws Exception {
String fileName = expoid + "_fujian.doc";
String filePath = request.getSession().getServletContext().getRealPath("fujianTemplate") + "\\" + fileName;
File file = new File(filePath);
// 清空response
response.reset();
response.setHeader("Content-Disposition", "attachment; filename=\"" + new String(fileName.getBytes("utf-8"), "iso-8859-1") + "\"");
response.addHeader("Content-Length", "" + file.length());
response.setContentType("application/octet-stream;charset=UTF-8");
InputStream in = null;
OutputStream toClient = null;
try {
// 以流的形式下载文件
in = new BufferedInputStream(new FileInputStream(filePath));
byte[] buffer = new byte[in.available()];
in.read(buffer);
in.close();
 
toClient = new BufferedOutputStream(response.getOutputStream());
toClient.write(buffer);
toClient.flush();
 
} catch (Exception e) {
e.printStackTrace();
} finally {
toClient.close();
}
 
return null;
}
 
public static Properties proper = null;
 
private String readProperties(String key) {
if (this.proper == null) {
InputStream in = this.getClass().getResourceAsStream("/env.properties");
try {
this.proper = new Properties();
this.proper.load(in);
} catch (IOException e) {
e.printStackTrace();
}
}
return this.proper.getProperty(key);

}


本文原文链接:https://blog.youkuaiyun.com/qq_30641447/article/details/72830057

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值