如何在使用javascript从服务器下载文件时更改文件名

How to change filename when downloading file from server using javascript

本文关键字:文件 下载 文件名 服务器 javascript      更新时间:2023-09-26

我从facebook下载了一些图片,只是为了学习HTML和JS。但我不希望文件名是一些长字符串(包含一些由数字和字符组成的长字符串)。

例如,我正在使用HTML5下载属性

 <a href="https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-xlt1/v/t1.0-9/12109181_503948273111743_2421725301227286538_n.jpg?oh=08c71f2236eaacc243ccd36475b4634e&oe=56BAA86C&__gda__=1459095933_f07fc4bb7bf54f48ac0b9286f8bc92c6"   
  download="imagename.jpg">
  Download Image
 </a>

或者这是上面代码的JSFiddle

当我点击这个链接时,文件是下载的,但名称不同。我的问题是如何更改文件名,如images.jpg

有可能吗?如果是,我该怎么走得更远。

默认文件名由服务器通过HTTP头发送:

Content-Disposition: attachment; filename='somefile'

出于安全原因,在客户端上运行的代码对文件的控制非常有限。我能看到的唯一解决方案是有一些服务器代码,从另一个域下载文件,然后用新的文件名发回。所以不,JS不能帮你解决这个问题。

我相对确信下载属性只会重命名您托管的文件,而不会重命名远程文件。

你的问题与此类似:使用下载属性与远程文件

答案中提到了一个变通的解决方案,但它可能超出了简单学习练习的范围。