javaweb之文件下载

下载

  1. 下载就是向客户端响应字节数据!
    原来我们响应的都是html的字符数据!
    把一个文件变成字节数组,使用response.getOutputStream()来各应给浏览器!!!

  2. 下载的要求

  • 两个头一个流!

    Content-Type:你传递给客户端的文件是什么MIME类型,例如:image/pjpeg

    • 通过文件名称调用ServletContext的getMimeType()方法,得到MIME类型!

    Content-Disposition:它的默认值为inline,表示在浏览器窗口中打开!attachment;filename=xxx

    • 在filename=后面跟随的是显示在下载框中的文件名称!

    流:要下载的文件数据!

    • 自己new一个输入流即可!

下载的细节

  1. 显示在下载框中的中文名称时,会出现乱码。
  • FireFox:Base64编码。
  • 其他大部分浏览器:URL编码。

通用方案:filename = new String(filename.getBytes(“GBK”), “ISO-8859-1”);

public static String filenameEncoding(String filename, HttpServletRequest request) throws IOException {
	String agent = request.getHeader("User-Agent"); //获取浏览器
	if (agent.contains("Firefox")) {
		BASE64Encoder base64Encoder = new BASE64Encoder();
		filename = "=?utf-8?B?"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值