我正在尝试执行此操作:单击“下载”按钮,然后从URL下载图像。这是我的代码:
<a download="https://cdn4.iconfinder.com/data/icons/web-links/512/41-512.png" href="" title="ImageName">
<button>download</button>
</a>
单击“下载”按钮将下载扩展名为.png的文件,但文件中的某些点将由下划线代替:
https___cdn4.iconfinder.com_data_icons_web-links_512_41-512.png
我想下载png,为什么会发生?我该如何解决?
答案 0 :(得分:3)
您误解了download
属性的工作方式。来自MDN:
如果属性具有值,则将其用作预填充文件名 在“保存”提示中(如果用户仍然可以更改文件名, 想)。尽管/和\是允许的值,但没有限制 转换为下划线。大多数文件系统都限制了一些标点符号 文件名,浏览器会相应地调整建议的名称。
因此,使用href
属性指向文件,并使用download
属性指定一个文件名(当前文件名除外)。
<a download=my_foo.png href=path/to/foo.png />
答案 1 :(得分:0)
根据MDN:
此属性指示浏览器下载URL而不是导航至URL,因此将提示用户将其保存为本地文件。如果属性具有值,则将其用作“保存”提示中的预填充文件名(用户仍然可以根据需要更改文件名)。对允许的值没有限制, /和\都转换为下划线。。大多数文件系统都限制了文件名中的标点符号,浏览器会相应地调整建议的名称。
这样做在规范中,因为在文件系统中,点和斜杠会导致无效的文件名。
以您的示例为例:
<a download="512.png" href="https://cdn4.iconfinder.com/data/icons/web-links/512/41-512.png" title="ImageName">
<button>download</button>
</a>