public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
//获取文件名称,转码
String filename = new String(request.getParameter("filename").getBytes("iso-8859-1"),"utf-8");
//会输出单引号,只好去掉了,,,
filename = filename.substring(1, filename.length()-1);
//转码,弹出来的方框设置成中文
String showname = java.net.URLEncoder.encode(filename, "utf-8");
//设置Content-Disposition
response.setHeader("Content-Disposition","attachment; filename=" + showname);
String path = this.getServletContext().getRealPath("/source/"+filename);
String referer = request.getHeader("Referer");
//防盗链
if(referer==null||!referer.startsWith("http://localhost:8080/DownWeb/"))
{
response.sendRedirect("/DownWeb/Error");
}
System.out.println("path:=" + path);
//打开文件
FileInputStream fis = new FileInputStream(path);
OutputStream out=response.getOutputStream();
byte buff[] = new byte[1024];
int len = 0;
while((len=fis.read(buff))>0)
{
out.write(buff, 0, len);
}
out.flush();
fis.close();
}