需求:超链接<a>下载文件, 希望地址中的文件名和下载后的文件名不一样。
场景:用户上传文件,为了防止文件名重复,所以一般后台都会将文件重命名,然后将 重命名的文件和原始文件名存储到数据表中;但是下载时,显示的文件名和文件地址就会不一样。
实现:
- 指定下载名,通过指定 <a>的 download属性来指定文件名,比如
<a href="/file/a32dsdfdfs23dd.zip" download="xxxx.zip">xxxx.zip</a>
- 通过重新构造一个dom对象元素
<a href="#" onclick="downloadFile()">xxxx.zip</a>
<script>
//用户自定义下载文件名
function downloadFile(){
var filename=prompt("随便写点儿啥吧","比如我叫啥");
var a = document.createElement('a');
a.href="/file/a32dsdfdfs23dd.zip";
a.download = filename;
a.click()
}
</script>