package utils;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.StringReader;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Enumeration;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoadAndDown extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
down(req,res);
}
protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
//down(req,res);
doGet(req,res);
}
public void down(HttpServletRequest req, HttpServletResponse res) throws IOException{
String file=new String(req.getParameter("path").getBytes("ISO-8859-1"), "utf-8");//中文字符转码
String path=getServletConfig().getServletContext().getRealPath(file);//取文件绝对路径
//String name=path.substring(path.lastIndexOf("取文件名
File f=new File(path);
long length=f.length();//取文件大小
res.setContentLength((int)length);//下载文件时显示文件大小
res.setHeader("content-disposition", "attachment;filename="+URLEncoder.encode(f.getName(),"utf-8"));
if(f.isFile()){
InputStream in=null;
OutputStream out=null;
try{
in=new FileInputStream(f);
int len;
byte[] buffer=new byte[1024];
out=res.getOutputStream();
while((len=in.read(buffer))>0){
out.write(buffer, 0, len);
}
}catch(Exception e){
throw new RuntimeException(e);
}finally{
if(in!=null){in.close();}
if(out!=null){out.close();}
}
}else{
res.setContentType("text/html;charset=GBK");
res.getWriter().print("指定文件不存在");
return;
}
}
}