Java文件下载相关设置

16 篇文章 4 订阅

每当遇到文件下载时,总是想不起来需要给 Response 设置哪些 Header,这次干脆记录下来,方便以后查询:

response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
response.setContentType("application/octet-stream");

其中:

  • fileName 最好使用 UTF-8 编码
  • content type 的值,可能需要根据下载的文档类型不一样,需要进行相应修改

另外,当下载的是 CSV 文件时,为了避免下载好的文件在用 excel 打开时发生乱码问题,请一定要设置 BOM。具体的,请参考我的另一篇博客:防止CSV打开乱码

ps:网上看到还有以下两个处理:

  • response.reset();
    在设置所有 Header之前调用这个 reset()
    不过,我自己在实践时,发现不调用此方法也并未发生什么意外。
    当然,如果有意外发生时,可以尝试一下加上这个处理。

  • response.addHeader(“Content-Length”, “” + file.length());
    这个一看就知道是设置下载的文件的内容长度的。
    不过,我建议大家还是要不设置的好。以免设置错了,导致下载的文件是个残缺的文件。
    因为我自己就出现过,在使用 fileContent.length()作为Content-Length的值时,发现下载的 CSV 文件总是被截取掉一小部分。

参考文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值