在实现文件下载时,我们需要在响应头中添加附加信息
response.addHeader(“Content-Disposition”, “attachment; filename=”+文件名);
Content-Disposition:attachment
该附加信息表示作为对下载文件的一个标识字段。不会在浏览器中显示而是直接做下载处理。
filename=文件名
表示指定下载文件的文件名
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
public class FileDownLoadServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//读取下载文件
File file = new File("D:\\DownloadFile/rog.jpg");
InputStream inputStream = new FileInputStream(file);
byte[] buff = new byte[inputStream.available()];
inputStream.read(buff);
//在响应中添加附加信息
resp.addHeader("Content-Disposition","attachment;filename="+file.getName());
//产生响应
OutputStream outputStream = resp.getOutputStream();
outputStream.write(buff);
outputStream.flush();
outputStream.close();
inputStream.close();
}
}