javaWeb文件下载

来源:互联网 发布:软件开发项目简介 编辑:程序博客网 时间:2024/06/01 21:15
@RequestMapping(value = "/{meetingType}/download/{fileId}", method = RequestMethod.GET)private void download(@PathVariable String meetingType,@PathVariable long fileId,HttpServletResponse response) throws Exception {if(!SecurityUtils.getSubject().isPermitted(meetingType+"-"+PER_DELETE)){ return ;}BufferedInputStream ips = null;ServletOutputStream out = null;try {Material material = materialService.selectByPrimaryKey(fileId);String url = Constans.FOLDER_CATALOG + material.getFileUrl();String fileName = material.getName()+"."+material.getSuffixName();fileName = URLEncoder.encode(fileName,"UTF-8"); //解决下载文件名乱码File file = new File(url);if(!file.exists()){JSONObject json = new JSONObject();json.put("state","该文件已不存在");AjaxUtil.responseJson(json,response);}response.setCharacterEncoding("UTF-8");response.setContentType("application/octet-stream");response.setHeader("Content-Disposition", "attachment;filename="+fileName);ips = new BufferedInputStream(new FileInputStream(file));out = response.getOutputStream();byte[] buffer = new byte[1024 * 1024];int len = 0;while ((len = ips.read(buffer)) != -1){out.write(buffer,0,len);}out.flush();}catch (Exception e){e.printStackTrace();}finally {out.close();ips.close();}}

原创粉丝点击