⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filedownloadbean.java

📁 使用spring ,hibernate 框架的稽查管理系统
💻 JAVA
字号:
package com.je.ims.util;

/*
 * Created on 2004-9-6
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */


import javax.servlet.http.HttpServlet;

import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.je.ims.dao.FileManagerDao;
import com.je.ims.hibernate.FileManager;

/**
 * Servlet Class
 *
 * @web.servlet              name="Download"
 *                           display-name="Name for Download"
 *                           description="Description for Download"
 * @web.servlet-mapping      url-pattern="/download/*"
 * 
 */

public class FileDownloadBean extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private FileManagerDao filemanagerdao;
	private FileManager filemanager;
	public void setFilemanagerdao(FileManagerDao c1)
	{
		filemanagerdao=c1;
	}
	public FileManagerDao getFilemanagedao() {
		return filemanagerdao;
	}
	public void download( HttpServletResponse res,String allfileadd)
		throws ServletException,
		IOException {
		 
		 String filename=getFileName(allfileadd);
		 System.out.println(filename);
		 System.out.println(allfileadd);
		 String filecname=getFilecName(filename);
		 System.out.println(filecname);
		 Long fileid=Long.valueOf(filecname);
		 System.out.println(fileid);
		 filemanager=filemanagerdao.getFile(fileid);
		 filename=filemanager.getFileCname()+"."+filemanager.getFileType();
		 System.out.println(filemanager.getFileCname());
		 System.out.println(filemanager.getFileType());
		 String filed=fileid+"."+filemanager.getFileType();
		 java.io.File file = new java.io.File("d:\\upload\\" + filed);
	        res.reset();
	        res.setCharacterEncoding("MS950");
	        res.setContentType("application/x-msdownload");
	        res.addHeader("Content-Disposition", "attachment; filename=" + filename);
	        System.out.println(file.length());
	        
	        res.setContentLength((int) file.length());
	        byte[] buffer = new byte[4096];
	        BufferedOutputStream output = null;
	        BufferedInputStream input = null;

	        // 写缓冲区:
	        try {
	            output = new BufferedOutputStream(res.getOutputStream());
	            input = new BufferedInputStream(new FileInputStream(file));

	            int n = (-1);
	            while ((n = input.read(buffer, 0, 4096)) > -1) {
	                output.write(buffer, 0, n);
	            }
	            res.flushBuffer();
	        }
	        catch (Exception e) {
	        } // maybe user cancelled download
	        finally {
	            if (input != null) input.close();
	            if (output != null) output.close();
	        }

		
		
	}
	
	private String getFileName(String s){ 
		
		
		int i = s.lastIndexOf("/"); 
		if(i < 0 || i >= s.length() - 1) 
		return s; 
		else 
		return s.substring(i + 1); 
		}
   private String getFilecName(String s){
			{
				String s1 = new String();
				int i = 0;
				
				if(s == null)
				return null;
				i = s.lastIndexOf(46);
				
				s1 = s.substring(0, i);
				if(s.lastIndexOf(46) > 0)
				return s1;
				else
				return "";
				}
			
		}
		
	

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -