跨域下载文件显示文件名

下载文件通常使用超链接a,后端的文件名未避免重复,一般为数字格式的,前端下载要指定具体的文件名,通常使用download属性。

如下:

<a href="..." download="文件名">文件名</a>

但是,若跨域的话,即下载文件地址与本页面不在一个域,则download属性会失效。

可以使用后端代理的方法,形成一种通用的格式。

将fileName和filePath,发送给后端,后端通过Content-disposition来指定文件名,通知浏览器显示保存文件对话框,并显示文件名。

常用的Content-Disposition格式有:

在浏览器中,内嵌显示一个文件:

Content-Disposition: inline; filename=foobar.pdf

在浏览器中,以保存框形式下载文件,显示文件名:

Content-Disposition: attachment; filename=foobar.pdf

在浏览器中,以保存框形式下载文件,显示文件名:

Content-Disposition: form-data; name="fieldName"; filename="filename.jpg"

 具体可参考: Content-Disposition

posted @ 2020-09-08 14:48  全玉  阅读(491)  评论(0编辑  收藏  举报