当前位置: 代码网 > it编程>编程语言>Javascript > 移动端a标签下载文件重命名(download)不生效解决办法

移动端a标签下载文件重命名(download)不生效解决办法

2024年11月03日 Javascript 我要评论
项目场景:移动端使用a标签下载文件问题描述下载的文件使用download重命名不生效app 中接收数据代码: const link = document.createelement('a') // 创

项目场景:

移动端使用 a 标签下载文件

问题描述

下载的文件使用 download 重命名不生效

app 中接收数据代码:

 const link = document.createelement('a') // 创建a标签
            link.style.display = 'none' // 使其隐藏
            link.href = 'http://192.168.103.1:8080/factory/v1/group1/m00/00/30/wkhnwwa6xf2aeеkvaaaafqhkoqm949.txt' // 赋予文件下载地址
            link.setattribute('download', `${dayjs(new date()).format('yyyy-mm-dd hh:mm:ss')}`) // 设置下载属性 以及文件名
            document.body.appendchild(link) // a标签插至页面中
            link.click() // 强制触发a标签事件
            document.body.removechild(link)

原因分析:

跨域问题:如果下载文件所在的服务器与当前页面不在同一域名下,download属性可能无法正常工作。这是因为跨域访问限制了文件下载。

解决方案:

使用fetch或者axios获取数据流,转成blob 之后就是同源的文件了,此时可以使用a标签正常下载了,注意需要添加请求头'content-type': 'application/json;charset=utf-8'

fetch('http://192.168.103.1:8080/factory/v1/group1/m00/00/30/wkhnwwa6xf2aeеkvaaaafqhkoqm949.txt', {
                method: 'get',
                heanders: {
                    'content-type': 'application/json;charset=utf-8'
                }
            })
                .then(res => res.blob())
                .then(blob => {
                    const link = document.createelement('a')
                    link.style.display = 'none'
                    link.download = `${dayjs(new date()).format('yyyy-mm-dd hh:mm:ss')}`// 设置下载属性 以及文件名
                    link.href = url.createobjecturl(blob)

                    document.body.appendchild(link)
                    link.click()
                    // 释放的 url 对象以及移除 a 标签
                    url.revokeobjecturl(link.href)
                    document.body.removechild(link)
                })

总结

到此这篇关于移动端a标签下载文件重命名(download)不生效解决办法的文章就介绍到这了,更多相关a标签下载文件重命名不生效内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com