美文网首页
java web 文件下载

java web 文件下载

作者: 持续进步者 | 来源:发表于2016-11-10 15:33 被阅读476次

文件下载流程

服务器端编码下载原理分析

通过response可以获取输出流,我们将要下载的资源,通过response获取的输出流直接写
回到浏览器端就可以。

服务器端下载两个响应头设置

  • 1,怎样能通知浏览器,下载文件是什么?
    通过response.setContentType设置响应数据的mimeType类型
    获取一个文件的mimeType类型
    ServletContext.getMimeType(String filename)
  • 2, 设置下载文件名称
    response.setHeader("Content-Disposition","attachement;filename=下载名称")

下载乱码问题

对于下载时,我们在显示下载文件名称时,如果包含了中文,就可能出现乱码问题,出现的原因,是对于
不同的浏览器,他们在处理下载文件时的编码不一致,ie浏览器使用的是utf-8编码,而firefox浏览器使用的是base64编码。

response.setCharacterEncoding("utf-8");
String filename = request.getParameter("filename");
String downPath = path+"/upload";
FileInputStream in = new FileInputStream(downPath+File.separator+filename);

if(request.getHeader("user-agent").toLowerCase().contains("msie")){
    filename = URLEncoder.encode(filename, "UTF-8");
}else{
    filename = new String(filename.getBytes("UTF-8"),"iso-8859-1");
}
response.setHeader("content-disposition", "attachment;filename="+filename);
response.setHeader("content-type",this.getServletContext().getMimeType(filename));

OutputStream os = response.getOutputStream();
byte[] buffer = new byte[1024];
int len=0;      
while((len=in.read(buffer))!=-1) {
    os.write(buffer, 0, len);
}
in.close();
os.close(); 

2016.11.10

相关文章

  • java web 文件下载

    文件下载流程 服务器端编码下载原理分析 服务器端下载两个响应头设置 1,怎样能通知浏览器,下载文件是什么?通过re...

  • 文件上传与下载

    文件上传和下载 文件上传和下载是JAVA WEB中常见的一种操作,文件上传主要是将文件通过IO流传输到服务器的某一...

  • Java Web 文件上传和下载

    前言 Java Web 三大组件已经学完了,今天学习Java代码实现文件的上传和下载,也是经常出现漏洞的一个关键...

  • Java Web

    Java web项目配置 新建一个web项目 下载Apache 下载地址

  • Java Web文件上传展示进度

    1、文件上传演示准备 接前面“Java Web中的文件上传和下载” 为了演示文件上传,先新增一个用于接收文件上传的...

  • Java Web中的文件上传和下载

    这里主要结合代码说明Java Web中文件上传和下载的机制。 1、文件上传示例说明 这里从一个文件上传的例子,看下...

  • 一些注意点(持续添加)

    WEB-INF下的文件不能直接被浏览器访问 JAVA连接mysql步骤a. 下载jdbc驱动包b. 放入WEB-I...

  • Java Web 之文件上传与下载

    本文包括:1、文件上传概述2、利用 Commons-fileupload 组件实现文件上传3、核心API——Dis...

  • 文件上传与下载(一)简单实现

    在慕课找到了一节关于java Web上传、下载问题的内容。内容总体包括: Jsp + Servlet 简单实现文件...

  • java实现从服务端下载文件到本地(非web方式)

    网上关于web 下载服务器文件的实现方式很多 这里记录一下纯java实现方法 上代码

网友评论

      本文标题:java web 文件下载

      本文链接:https://www.haomeiwen.com/subject/ssrxpttx.html