文件下载

文件下载

    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 );
}
}

转载于:https://www.cnblogs.com/wzhsc/p/10326650.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值