从数据库下载文件
public ActionForward downloadFile(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {long id=ParamUtils.getLongParameter(request, "id", 0l);try {HqjcDepaAttach annex=(HqjcDepaAttachImpl)depaAttachManager.get(id);//String fileName = this.currentTime();String filePath = request.getRealPath("/temp")+annex.getAccachValue();File file = new File(filePath);byte[] bytes = annex.getAttachFile();FileOutputStream fos = new FileOutputStream(file); fos.write(bytes); if(fos != null){ fos.flush(); fos.close();}String suffix=annex.getAccachValue().substring(annex.getAccachValue().indexOf(".")+1).toUpperCase();String dataType="application/octet-stream";if("BMP".equals(suffix)){dataType="image/bmp";}else if("GIF".equals(suffix)){dataType="image/gif";}else if("JPEG".equals(suffix)||"JPG".equals(suffix)){dataType="image/jpeg";}else if("TXT".equals(suffix)){dataType="text/plain";}else if("PDF".equals(suffix)){dataType="application/pdf";}else if("DOC".equals(suffix)){dataType="application/msword";}else if("XLS".equals(suffix)){dataType="application/vnd.ms-excel";}else if("PPT".equals(suffix)){dataType="application/vnd.ms-powerpoint";}else if("HTML".equals(suffix)||"HTM".equals(suffix)){dataType="text/html";}else if("XML".equals(suffix)){dataType="text/xml";} // 现在用户对该文档拥有下载权限 以字节流的形式下载文件response.setContentType(dataType); // 设置头,浏览器不认识就提示下载response.setHeader("Content-Disposition", "attachment; filename="+URLEncoder.encode(annex.getAccachValue(), "UTF-8"));// 以流的形式写出文件FileInputStream bis = new FileInputStream(file);//以流的形式写出文件OutputStream bos = response.getOutputStream();byte[] buff = new byte;int readCount = 0;readCount = bis.read(buff);while (readCount != -1){ bos.write(buff, 0, readCount);readCount = bis.read(buff);}if (bis != null) bis.close();if (bos != null) bos.close();//下载完毕,给浏览器发给完毕的头response.setStatus(HttpServletResponse.SC_OK);response.flushBuffer();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}
页:
[1]