摘要:通過點擊下載多媒體文件圖片視頻文件等最簡單的方式下載文件如果指向同源資源,是正常的。解決方案一將文件打包為等瀏覽器不能打開的文件下載。如果指向的第三方資源配置了,屬性無效,但可以獲取文件下載到本地,無法修改修改文件名。
1.通過點擊下載多媒體文件(圖片/視頻/文件等)
最簡單的方式:
下載文件
如果url指向同源資源,是正常的。
如果url指向第三方資源,download會失效,表現(xiàn)和不使用download時一致——瀏覽器能打開的文件,瀏覽器會直接打開,不能打開的文件,會直接下載。瀏覽器打開的文件,可以手動下載。
解決方案一:將文件打包為.zip/.rar等瀏覽器不能打開的文件下載。
解決方案二:通過后端轉(zhuǎn)發(fā),后端請求第三方資源,返回給前端,前端使用file-saver等工具保存文件。
?
如果url指向的第三方資源配置了CORS,download屬性無效,但可以獲取文件下載到本地,無法修改修改文件名。
2.解決方法 1. 借助HTML5 Blob實現(xiàn)文本信息文件下載const downloadRes = async (url, name) => { let response = await fetch(url) // 內(nèi)容轉(zhuǎn)變成blob地址 let blob = await response.blob() // 創(chuàng)建隱藏的可下載鏈接 let objectUrl = window.URL.createObjectURL(blob) let a = document.createElement("a") //地址 a.href = objectUrl //修改文件名 a.download = name // 觸發(fā)點擊 document.body.appendChild(a) a.click() //移除 setTimeout(() => document.body.removeChild(a), 1000) }2.圖片格式
如果我們想下載一張圖片,可以把這張圖片轉(zhuǎn)換成base64格式,然后下載。 ``` export const downloadImg = async (url, name) => { var canvas = document.createElement("canvas"), ctx = canvas.getContext("2d"), img = new Image(); img.crossOrigin = "Anonymous"; img.onload = function() { canvas.height = img.height; canvas.width = img.width; ctx.drawImage(img, 0, 0); var dataURL = canvas.toDataURL("image/png"); let a = document.createElement("a"); a.href = dataURL; a.download = name; document.body.appendChild(a); a.click(); setTimeout(() => { document.body.removeChild(a); canvas = null; }, 1000); }; img.src = url; }; ```
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/110264.html
摘要:本篇所說的文件下載也是基于和或者都行。的返回值是一個有意思的對象,它包含了很多方法,其中一個方法就是。通過的響應(yīng)頭獲取到文件名。接下來就是對標(biāo)簽的一系列操作,然后模擬點擊事件觸發(fā)下載動作。 距離上次博文更新已經(jīng)快一個月了,期間忙于各種事情無法脫身。今天難得閑暇 and then 就來更新啦...上篇中我們了解了下載React中如何實現(xiàn)文件的上傳,雖然不算什么高大上的技術(shù)但實際開發(fā)的時候...
摘要:原文聊一聊應(yīng)用緩存導(dǎo)讀是提供的一種應(yīng)用緩存機(jī)制基于它應(yīng)用可以實現(xiàn)離線訪問為此瀏覽器還提供了應(yīng)用緩存的雖然的技術(shù)已被標(biāo)準(zhǔn)廢棄但這不影響我們嘗試去了解它也正是因為的應(yīng)用緩存機(jī)制如此誘人餓了么和郵箱等都還在使用著它描述對熟悉的同學(xué)可以跳過此 原文: 聊一聊H5應(yīng)用緩存-Manifest 導(dǎo)讀 Manifest 是 H5提供的一種應(yīng)用緩存機(jī)制, 基于它web應(yīng)用可以實現(xiàn)離線訪問(offline...
閱讀 2797·2023-04-25 23:08
閱讀 1583·2021-11-23 09:51
閱讀 1564·2021-10-27 14:18
閱讀 3114·2019-08-29 13:25
閱讀 2830·2019-08-29 13:14
閱讀 2895·2019-08-26 18:36
閱讀 2192·2019-08-26 12:11
閱讀 811·2019-08-26 11:29