下载文件通常使用超链接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