欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

移動(dòng)端a標(biāo)簽下載文件重命名(download)不生效解決辦法

 更新時(shí)間:2024年10月18日 08:30:21   作者:Julia_0502  
在移動(dòng)端使用a標(biāo)簽下載文件時(shí),文件重命名可能不生效,尤其是在APP內(nèi)嵌頁(yè)面中,這通常是因?yàn)榭缬騿?wèn)題導(dǎo)致的,文中將解決辦法介紹的非常詳細(xì),需要的朋友可以參考下

項(xiàng)目場(chǎng)景:

移動(dòng)端使用 a 標(biāo)簽下載文件

問(wèn)題描述

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

APP 中接收數(shù)據(jù)代碼:

 const link = document.createElement('a') // 創(chuàng)建a標(biāo)簽
            link.style.display = 'none' // 使其隱藏
            link. // 賦予文件下載地址
            link.setAttribute('download', `${dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss')}`) // 設(shè)置下載屬性 以及文件名
            document.body.appendChild(link) // a標(biāo)簽插至頁(yè)面中
            link.click() // 強(qiáng)制觸發(fā)a標(biāo)簽事件
            document.body.removeChild(link)

原因分析:

跨域問(wèn)題:如果下載文件所在的服務(wù)器與當(dāng)前頁(yè)面不在同一域名下,download屬性可能無(wú)法正常工作。這是因?yàn)榭缬蛟L問(wèn)限制了文件下載。

解決方案:

使用fetch或者axios獲取數(shù)據(jù)流,轉(zhuǎn)成blob 之后就是同源的文件了,此時(shí)可以使用a標(biāo)簽正常下載了,注意需要添加請(qǐng)求頭'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')}`// 設(shè)置下載屬性 以及文件名
                    link.href = URL.createObjectURL(blob)

                    document.body.appendChild(link)
                    link.click()
                    // 釋放的 URL 對(duì)象以及移除 a 標(biāo)簽
                    URL.revokeObjectURL(link.href)
                    document.body.removeChild(link)
                })

總結(jié)

到此這篇關(guān)于移動(dòng)端a標(biāo)簽下載文件重命名(download)不生效解決辦法的文章就介紹到這了,更多相關(guān)a標(biāo)簽下載文件重命名不生效內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • webpack之devtool詳解

    webpack之devtool詳解

    這篇文章主要介紹了webpack之devtool詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • 基于webpack 實(shí)用配置方法總結(jié)

    基于webpack 實(shí)用配置方法總結(jié)

    下面小編就為大家?guī)?lái)一篇基于webpack 實(shí)用配置方法總結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • js添加事件的通用方法推薦

    js添加事件的通用方法推薦

    下面小編就為大家?guī)?lái)一篇js添加事件的通用方法推薦。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • js確認(rèn)刪除對(duì)話框適用于a標(biāo)簽及submit

    js確認(rèn)刪除對(duì)話框適用于a標(biāo)簽及submit

    這篇文章主要介紹的是一個(gè)js確認(rèn)刪除對(duì)話框適用于a標(biāo)簽及submit,非常好用,需要的朋友不要錯(cuò)過(guò)
    2014-07-07
  • transport.js和jquery沖突問(wèn)題的解決方法

    transport.js和jquery沖突問(wèn)題的解決方法

    這篇文章主要介紹了transport.js和jquery沖突問(wèn)題的解決方法,需要的朋友可以參考下
    2015-02-02
  • js原生Ajax的封裝和原理詳解

    js原生Ajax的封裝和原理詳解

    這篇文章主要為大家詳細(xì)介紹了js原生Ajax的封裝和原理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • JS如何將秒數(shù)轉(zhuǎn)化為時(shí)分秒的形式

    JS如何將秒數(shù)轉(zhuǎn)化為時(shí)分秒的形式

    在實(shí)際工作中經(jīng)常會(huì)遇見(jiàn)把秒數(shù)轉(zhuǎn)化為時(shí)分秒的問(wèn)題,如何處理呢?下面這篇文章主要給大家介紹了關(guān)于JS如何將秒數(shù)轉(zhuǎn)化為時(shí)分秒形式的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Uniapp?實(shí)現(xiàn)全民分銷(xiāo)功能原理解析

    Uniapp?實(shí)現(xiàn)全民分銷(xiāo)功能原理解析

    這篇文章主要介紹了Uniapp?實(shí)現(xiàn)全民分銷(xiāo)功能,本篇文章主要介紹全民分銷(xiāo)功能實(shí)現(xiàn)原理,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • ionic中的$ionicPlatform.ready事件中的通用設(shè)置

    ionic中的$ionicPlatform.ready事件中的通用設(shè)置

    $ionicPlatform.ready事件是用于檢測(cè)當(dāng)前的平臺(tái)是否就緒的事件,相當(dāng)于基于document的deviceready事件, 在app中一些通用關(guān)于設(shè)備的設(shè)置必須在這個(gè)事件中處理
    2017-06-06
  • NodeJS的Promise的用法解析

    NodeJS的Promise的用法解析

    下面小編就為大家?guī)?lái)一篇NodeJS的Promise的用法解析。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考
    2016-05-05

最新評(píng)論