使用JAVA下载文件
JAVA文件下载
public class FileServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 1. 要获取下载文件的路径
ServletContext context = this.getServletContext();
String realPath = "/Users/yinrui/Documents/西部教育/前端入门/javaweb-servlet/response/target/classes/1.png";
System.out.println("下载文件的路径"+realPath);
// 2. 下载的文件名
String fileName = realPath.substring(realPath.lastIndexOf("//")+1);
// 3. 设置想办法让浏览器能够支持下载我们需要的东西(content-disposition) 下载我们需要的东西,中文文件名URLENcoder.encoder编码,否则有可能乱码
resp.setHeader("content-disposition","attachement;filename="+ URLEncoder.encode(fileName,"UTF-8"));
// 4. 获取下载文件的输入流
FileInputStream in = new FileInputStream(realPath);
// 5. 创建缓冲区
int len = 0;
byte[] buffer = new byte[1024];
// 6. 获取OutputStream对象
ServletOutputStream out = resp.getOutputStream();
// 7. 将FileOutPutStream流写入到buffer缓冲区,使用OutputStream将缓冲区中的数据输出到客户端!
while ((len = in.read(buffer))>0){
out.write(buffer,0,len);
}
in.close();
out.close();
}
Keep Clam and Carry Keen.