package uploadDemo;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.FileUtils;
@WebServlet("/downloadServlet")
public class DownloadServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获得要下载的文件的名称。
String filename = req.getParameter("filename");
//创建要下载的文件地址对象。
File file = new File("j:/upload/"+filename);
//设置浏览器识别的响应头部数据。当文件名有中文字符时,要把文件名重新编码,再解码为iso-8859-1.
resp.setHeader("content-disposition", "attachement;filename="+new String(filename.getBytes("utf-8"), "iso-8859-1"));
//获取响应流对象。
OutputStream os = resp.getOutputStream();
//利用file工具,将file文件写到响应流中。
os.write(FileUtils.readFileToByteArray(file));
os.flush();
}
}