您的位置:首页 > 编程语言 > Java开发

springMVC实现文件上传 删除 下载

2017-06-01 12:18 603 查看
// 附件上传
@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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐