- /*
- 下载的主方法.
- */
- public ActionForward fileDownLoad(ActionMapping mapping,
- HttpServletRequest request, HttpServletResponse response)
- throws ServletException {
- String fileName = null;// 名称
- String realpath = "D:/crmSite/cdoc/";
- realpath = "D:/crmSite/cdoc/"
- + adform.getAdMat().substring(1);
- realpath = StrUtils.replace(realpath, "//", "/");
- BufferedInputStream bis = null;
- BufferedOutputStream bos = null;
- OutputStream fos = null;
- InputStream fis = null;
- fileName = realpath.substring(realpath.lastIndexOf("/") + 1, realpath.length());
- //System.out.println(realpath);
- try {
- response.setContentType(this.getContentType(fileName));
- response.setHeader("Content-disposition", "attachment;filename="
- + fileName);
- fis = new FileInputStream(realpath);
- bis = new BufferedInputStream(fis);
- fos = response.getOutputStream();
- bos = new BufferedOutputStream(fos);
- int bytesRead = 0;
- byte[] buffer = new byte[5 * 1024];
- while ((bytesRead = bis.read(buffer)) != -1) {
- bos.write(buffer, 0, bytesRead);// 将文件发送到客户端
- }
- bos.close();
- bis.close();
- fos.close();
- fis.close();
- } catch (IOException e) {
- response.reset();
- e.printStackTrace();
- } finally {
- try {
- if (fos != null) {
- fos.close();
- }
- if (bos != null) {
- bos.close();
- }
- if (fis != null) {
- fis.close();
- }
- if (bis != null) {
- bis.close();
- }
- } catch (IOException e) {
- System.err.print(e);
- }
- }
- return null;
- }
- /*
- 设置文件类型
- */
- private String getContentType(String fileName) {
- String fileNameTmp = fileName.toLowerCase();
- String ret = "";
- if (fileNameTmp.endsWith("txt")) {
- ret = "text/plain";
- }
- if (fileNameTmp.endsWith("gif")) {
- ret = "image/gif";
- }
- if (fileNameTmp.endsWith("jpg")) {
- ret = "image/jpeg";
- }
- if (fileNameTmp.endsWith("jpeg")) {
- ret = "image/jpeg";
- }
- if (fileNameTmp.endsWith("jpe")) {
- ret = "image/jpeg";
- }
- if (fileNameTmp.endsWith("zip")) {
- ret = "application/zip";
- }
- if (fileNameTmp.endsWith("rar")) {
- ret = "application/rar";
- }
- if (fileNameTmp.endsWith("doc")) {
- ret = "application/msword";
- }
- if (fileNameTmp.endsWith("ppt")) {
- ret = "application/vnd.ms-powerpoint";
- }
- if (fileNameTmp.endsWith("xls")) {
- ret = "application/vnd.ms-excel";
- }
- if (fileNameTmp.endsWith("html")) {
- ret = "text/html";
- }
- if (fileNameTmp.endsWith("htm")) {
- ret = "text/html";
- }
- if (fileNameTmp.endsWith("tif")) {
- ret = "image/tiff";
- }
- if (fileNameTmp.endsWith("tiff")) {
- ret = "image/tiff";
- }
- if (fileNameTmp.endsWith("pdf")) {
- ret = "application/pdf";
- }
- return ret;
- }
- //调用时只需要用URL或提交的方式提交到action即可