文件下载的文件名设置

文件下载的文件名设置

工作一年多了,以前写的下载都是图片下载,也没有觉得什么不对,终于在前两天发现了问题。别人的apk文件上传了以后下载下来变成了zip,后缀不对。于是我也好奇了,我看有的网站明明是支持上传的文件名是什么,下载的时候也是什么,他们是怎么做到的?

于是我百度了下关于下载时设置文件名,果然和response中的Content-Disposition这个属性有关。Content-Disposition的作为 main body的header的语法如下:

Content-Disposition: inline
Content-Disposition: attachment
Content-Disposition: attachment; filename="filename.jpg"

直接在浏览器中打开就是inline,这是默认值;如果作为附件下载就使用attachment,会使用浏览器下载。
所以我们在下载文件的时候需要attachment,并且可以设置文件名。

所以在代码中加上

 response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));

网上还有人说,文件名中有中文会有乱码的问题,在此暂时不讨论。这样就可以是下载文件、图片,而不是在浏览器中直接打开。所以图片作为image的元素的时候用inline,需要保存的时候是用attachment。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

machineShunMing

谢谢老板

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值