springMVC实现文件上传 删除 下载

来源:互联网 发布:mac怎么更改u盘格式 编辑:程序博客网 时间:2024/05/22 07:48

// 附件上传@RequestMapping(value = "/uploadfile", method = RequestMethod.POST)@ResponseBodypublic 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);// 清空responseresponse.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);}