文件下载

Posted wzhsc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件下载相关的知识,希望对你有一定的参考价值。

文件下载

    1、超链接下载(某些不适用)

                  某些格式的文件可以直接下载,某些就直接在浏览器打开了,根据文件的mime类型决定的,如果说浏览器不能识别的mime类型,那么就提示下载如果可以识别,就直接打开

 

     2、编码下载

                   1、设置文件的mime类型

                   2、设置下载头信息

          3、流操作

例如:

@WebServlet(value = "/fileDownloadServlet",name = "FileDownloadServlet")
public class FileDownloadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1、获取文件名
String name = request.getParameter("name");
//2、文件真实路径
String filepath = "E:\file\"+name;
//3、创建输入流
FileInputStream in = new FileInputStream(filepath);
//4、设置response的响应头 ServletContext
ServletContext context = getServletContext();
//获取文件的mime类型
String mimeType = context.getMimeType(name);
response.setHeader("content-type",mimeType);
//解决中文乱码:
//获取user-agent
String agent = request.getHeader("user-agent");
String fileName = DownLoadUtils.getFileName(agent, name);
//设置下载头信息
response.setHeader("content-disposition", "attachment; filename="+fileName);
//流操作
ServletOutputStream out = response.getOutputStream();
byte[] b = new byte[1024 * 10];
int len = 0;
while((len = in.read(b)) != -1){
out.write(b, 0, len);
}
out.close();
in.close();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response );
}
}

































以上是关于文件下载的主要内容,如果未能解决你的问题,请参考以下文章

在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途

代码片段 PHP,预期文件结尾,我错在哪里?

代码适用于与单个 html 文件不同的堆栈片段

VS code自定义用户代码片段snippet

Java itext为pdf 文件添加水印核心功能代码片段

VSCode自定义代码片段——声明函数