JS实现文件下载并实现文件重命名功能

本文内容参考来源: https://cloud.tencent.com/developer/article/1431700

 

最近在工作中需要实现一个下载的功能,当时自认为很简单,但是设置了download之后,发现重命名没有生效,因为下载没有通过后台协助,只根据一个地址去实现下载,最后查阅了资料,找到了解决办法

 

复制代码
/** * 获取 blob * @param {String} url 目标文件地址 * @return {cb} */ function getBlob(url,cb) { var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.responseType = 'blob'; xhr.onload = function() { if (xhr.status === 200) { cb(xhr.response); } }; xhr.send(); } /** * 保存 * @param {Blob} blob * @param {String} filename 想要保存的文件名称 */ function saveAs(blob, filename) { if (window.navigator.msSaveOrOpenBlob) { navigator.msSaveBlob(blob, filename); } else { var link = document.createElement('a'); var body = document.querySelector('body'); link.href = window.URL.createObjectURL(blob); link.download = filename; // fix Firefox link.style.display = 'none'; body.appendChild(link); link.click(); body.removeChild(link); window.URL.revokeObjectURL(link.href); }; } /** * 下载 * @param {String} url 目标文件地址 * @param {String} filename 想要保存的文件名称 */ function download(url, filename) { getBlob(url, function(blob) { saveAs(blob, filename); }); };
复制代码

 


__EOF__

本文作者收破烂的小伙子
本文链接https://www.cnblogs.com/hspl/p/16159825.html
关于博主:日常记录工作中遇到的疑难杂症!
版权声明:本博客所有文章纯属工作记录。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   收破烂的小伙子  阅读(1447)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示