亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript實現(xiàn)文件下載的超簡單兩種方式分享

 更新時間:2023年12月08日 16:59:26   作者:張張打怪獸  
這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)文件下載的超簡單兩種方式,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

文件下載一般有幾種情況

  • 1.url
  • 2.文件流

file-saver庫實現(xiàn)文件下載

// 流方式
import { saveAs } from "file-saver";
//content 文件流,xxx.pdf 文件名稱
saveAs(content, `xxx.pdf`);
 
// url方式  
import { saveAs } from "file-saver";
const url = 'xxx.jpg'
fetch(url)
.then((response) => response.blob())
.then((blob) => {
  saveAs(blob, `xxx.pdf`);
  })

手寫方式

url方式

原理:創(chuàng)建一個a標簽,傳入url點一下a標簽就可以下載了

流方式

???????原理:將流轉(zhuǎn)換成緩存的url,再創(chuàng)建一個a標簽傳入url,點一下就實現(xiàn)了

【工具類】文件下載類

 
//utils/downloadFile
class DownloadFile {
    /**
     * 
     * @param {*} file 文件流
     * @returns 
     */
    getObjectURL(file) {
        let url = null;
        if (window.createObjectURL !== undefined) {
            // basic
            url = window.createObjectURL(file);
        } else if (window.webkitURL !== undefined) {
            // webkit or chrome
            try {
                url = window.URL.createObjectURL(file);
            } catch (error) {
                console.log(error);
            }
        } else if (window.URL !== undefined) {
            // mozilla(firefox)
            try {
                url = window.URL.createObjectURL(file);
            } catch (error) {
                console.log(error);
            }
        }
        return url;
    }
    /**
     * 文件點擊下載
     * @param {*} blob 文件流
     * @param {*} fileName 文件名
     */
    downloadFile(blob, fileName) {
        let eleLink = document.createElement("a");
        eleLink.download = fileName;
        eleLink.style.display = "none";
        // 字符內(nèi)容轉(zhuǎn)變成blob地址
        eleLink.href = this.getObjectURL(blob);
        // 自動觸發(fā)點擊
        document.body.appendChild(eleLink);
        eleLink.click();
        // 然后移除
        document.body.removeChild(eleLink);
    }
 
    /**
   * 獲取文件名后綴
   * @param {*} filename 文件名
   * @returns 
   */
    getFileFix(filename) {
        let fix = filename.substring(filename.lastIndexOf("\.") + 1).toLocaleLowerCase();
        return fix;
    }
 
    /**
     * 是否可預覽
     * @param {*} filename 文件名
     * @returns true可,false不可
     */
    isPreview(filename) {
        let fix = this.getFileFix(filename)
        switch (fix) {
            case "jpg":
            case "jpge":
            case "png":
            case "pdf":
            case "mp4":
            case "txt": {
                return true
            }
            default: {
                return false
            }
        }
    }
 
    /**
     * 預覽文件
     * @param {*} blob 文件流
     */
    preview(blob) {
        return this.getObjectURL(blob);
    }
 
    /**
     * 是服務器流 false 本地流true
     * @param {*} blob 文件流
     */
    static isLocalFile(blob) {
        return blob.raw ? true : false
    }
 
}
 
export default DownloadFile

下載

import DownloadFile from "@/utils/DownloadFile";
let d = new DownloadFile();
// content 文件流【blob】
d.downloadFile(content, "優(yōu)惠碼.zip");

到此這篇關于JavaScript實現(xiàn)文件下載的超簡單兩種方式分享的文章就介紹到這了,更多相關JavaScript文件下載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • JavaScript仿京東放大鏡效果

    JavaScript仿京東放大鏡效果

    這篇文章主要為大家詳細介紹了JavaScript仿京東放大鏡效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • JavaScript操作表單實例講解(上)

    JavaScript操作表單實例講解(上)

    這篇文章主要介紹了JavaScript操作表單實例講解(上)的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • JS使用H5實現(xiàn)圖片預覽功能

    JS使用H5實現(xiàn)圖片預覽功能

    這篇文章主要為大家詳細介紹了JS使用H5實現(xiàn)圖片預覽功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • 基于JavaScript實現(xiàn)密碼框驗證信息

    基于JavaScript實現(xiàn)密碼框驗證信息

    這篇文章主要為大家詳細介紹了基于JavaScript實現(xiàn)密碼框驗證信息,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • window.location不跳轉(zhuǎn)的問題解決方法

    window.location不跳轉(zhuǎn)的問題解決方法

    window.location的跳轉(zhuǎn)失效的情況有沒有遇到過啊,這主要是冒泡傳遞影響了,下面有個不錯的解決方法,大家可以參考下
    2014-04-04
  • 前端知識點之Javascript選擇輸入框confirm用法

    前端知識點之Javascript選擇輸入框confirm用法

    這篇文章主要介紹了JavaScript中的confirm方法的基本用法、功能特點、注意事項及常見用途,文中通過代碼介紹的非常詳細,對大家學習或者使用js具有一定的參考借鑒價值,需要的朋友可以參考下
    2025-02-02
  • javascript內(nèi)置對象Math案例總結(jié)分析

    javascript內(nèi)置對象Math案例總結(jié)分析

    今天總結(jié)一下javascript 內(nèi)置對象Math中的函數(shù)用法,順帶寫一下常見的案例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • bootstrap datetimepicker2.3.11時間插件使用

    bootstrap datetimepicker2.3.11時間插件使用

    這篇文章主要為大家詳細介紹了bootstrap datetimepicker2.3.11時間插件使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • JS實現(xiàn)霓虹燈文字效果的方法

    JS實現(xiàn)霓虹燈文字效果的方法

    這篇文章主要介紹了JS實現(xiàn)霓虹燈文字效果的方法,涉及javascript遍歷字符串及頁面樣式的動態(tài)操作技巧,效果非常炫目華麗,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • ECMAScript中迭代器的深入講解

    ECMAScript中迭代器的深入講解

    在ECMAScript 6增加了一個對象,它不是新的語法或新的內(nèi)置對象,而一種協(xié)議( 迭代器協(xié)議),所有遵守這個協(xié)議的對象,都可以稱之為迭代器,這篇文章主要給大家介紹了關于ECMAScript中迭代器的相關資料,需要的朋友可以參考下
    2021-08-08

最新評論