自定义下载文件名,防止js中添加数字



我有以下简单的代码下载文件。

let text = 'download'
function make(){
const data = new Blob([text],{ type: 'type: "text/plain"' })
document.querySelector('a').download = 'untitle'
document.querySelector('a').href = window.URL.createObjectURL(data);
}
make()
<a download>Download</a>

浏览器(在chrome中不确定其他浏览器)将自动指定下载相同名称文件的第二次或更多次的次数。

的例子:

首次下载:untititle .text

第二次下载:title(1).text…

是否有可能阻止浏览器的这种行为发生?

感谢你可以试试https://jsfiddle.net/yapb2xus/1/

你就是不能,这是大多数浏览器和几乎所有操作系统的默认行为,因为你不能有两个同名的文件。

由于chrome(和firefix)自动将文件保存在默认路径中,第一次文件untitle.text将不存在,并将以原始名称保存。在第二次尝试时,该文件将存在于默认下载路径中,因此浏览器会自动为其添加后缀。

您可以尝试创建自己的序列,在每次点击链接时添加时间戳或其他内容。