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

📄 download.java

📁 这是用jsp做的
💻 JAVA
字号:
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Locale;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class Download extends HttpServlet {
	File dir;
	public Download() {
		super();
	}

	
	public void destroy() {
		super.destroy(); 
	}


	public void doGet(HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException {		
		FileInputStream fis = null; 
		BufferedInputStream bis = null;
		ServletOutputStream out = null;   
		try	{			 
			String fileName = "你好.txt";//getFileName(request);//要下载的文件名
			File file = new File(dir, fileName);
			
			response.setContentType("application/x-msdownload;");
			//以下getBytes需要使用浏览器支持的编码,这个编码只能根据request.getLocale然后猜测一个值
			fileName = new String(fileName.getBytes("gbk"),"iso8859-1"); 
			response.setHeader("Content-disposition", "attachment; filename=\"" + fileName+"\"");//new String(fileName.getBytes("gbk"),"iso8859-1")); 

			fis = new  FileInputStream(file); //读入文件
			out = response.getOutputStream();
			out.flush();
			bis = new BufferedInputStream(fis);			
			byte buffer[] = new byte[4096];
			int len = 0;

			while ( (len = bis.read(buffer)) != -1) {
				out.write(buffer, 0, len);
			}
			out.flush();					
		}
		catch(Throwable e){
			e.printStackTrace();
		}
		finally{
			try{
				fis.close();
				out.close();
			}
			catch(Throwable e){
				e.printStackTrace();
			}
		}
	}

	public void init() throws ServletException {
		String root = this.getServletContext().getRealPath("/")+"temp";
		dir = new File(root);
	}
	
	public static void main(String args[]){
		Locale l = Locale.CHINESE;
		System.out.println(l.toString());
	}
}

⌨️ 快捷键说明

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