文件預覽/下載方式:通過二進制流(Blob)下載、或者通過文件Url下載

一、 通過二進制流(Blob)下載

1 、API請求時候帶上類型

/*** 文件--下載* */
export function download(fphm) {return axios({url: "/ynpst/download-invoice?fphm=" + fphm,method: 'get',responseType: 'blob'})
}

2、文件預覽和下載

    /*** 預覽* */seeItem(fphm) {//請求預覽APIpreview(fphm).then(res => {const blob = new Blob([res], {type: 'application/pdf;chartset=UTF-8'})let blobUrl = window.URL.createObjectURL(blob)window.open(blobUrl)})},/*** 下載--請求API* */dowload(fphm) {download(fphm).then(res => {this.downloadFn(res)})},/*** 下載---文件* */downloadFn(flow) {if (!flow) returnconst blob = new Blob([flow])const blobUrl = window.URL.createObjectURL(blob)const a = document.createElement('a')a.style.display = 'none'a.download = '發票.pdf' // 自定義下載的文件名a.href = blobUrla.click()}

二、通過文件地址Url下載文件

1、預覽

 window.open(fileUrl)或者使用 a 標簽

2、下載

調用downLoad方法下載文件,以下是具體方法://************************修改文件下載的名稱*********start************************/*** 獲取 blob* @param  {String} url 目標文件地址* @return {Promise}*/function  getBlob(url) {return new Promise(resolve => {const xhr = new XMLHttpRequest();// 避免 200 from disk cacheurl = url + `?r=${Math.random()}`;xhr.open("GET", url, true);xhr.responseType = "blob";xhr.onload = () => {if (xhr.status === 200) {resolve(xhr.response);}};xhr.send();});}/*** 保存* @param  {Blob} blob* @param  {String} filename 想要保存的文件名稱*/function  saveAs(blob, filename) {if (window.navigator.msSaveOrOpenBlob) {navigator.msSaveBlob(blob, filename);} else {const anchor = document.createElement("a");const body = document.querySelector("body");anchor.href = window.URL.createObjectURL(blob);anchor.download = filename;console.log(filename, "filename");anchor.style.display = "none";body.appendChild(anchor);anchor.click();body.removeChild(anchor);window.URL.revokeObjectURL(anchor.href);}}/*** 下載* @param  {String} url 目標文件地址* @param  {String} newFilename 想要保存的文件名稱*/export async function download(url, newFilename) {//   console.log(url, newFilename,'jsjsjsjsjsj');      const blob = await getBlob(url);console.log(blob,'blob');saveAs(blob, newFilename);}//************************修改文件下載的名稱*********end************************

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/37549.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37549.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37549.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaScript如何執行語句

目錄 語法/詞法分析 預編譯 解釋執行 預編譯什么時候發生 js運行三步曲 預編譯前奏 預編譯步驟 鞏固基礎練習 語法/詞法分析 按語句塊的粒度解析成抽象語法樹 ,分析該js腳本代碼塊的語法是否正確,如果出現不正確,則向外拋出一個語法錯誤&#x…

第4章:決策樹

停止 當前分支樣本均為同一類時,變成該類的葉子節點。當前分支類型不同,但是已經沒有可以用來分裂的屬性時,變成類別樣本更多的那個類別的葉子節點。當前分支為空時,變成父節點類別最多的類的葉子節點。 ID3 C4.5 Cart 過擬合 缺…

文本挖掘 day5:文本挖掘與貝葉斯網絡方法識別化學品安全風險因素

文本挖掘與貝葉斯網絡方法識別化學品安全風險因素 1. Introduction現實意義理論意義提出方法,目標 2. 材料與方法2.1 數據集2.2 數據預處理2.3 關鍵字提取2.3.1 TF-IDF2.3.2 改進的BM25——BM25WBM25BM25W 2.3.3 關鍵詞的產生(相關系數) 2.4 關聯規則分析2.5 貝葉斯…

css冒號對齊

實現后的樣式效果 實現方式 html&#xff1a; <el-col v-if"item.showInSingle ! false" :span"6" style"padding: 4px 0"><label>{{ item.label }}&#xff1a;</label><span v-if"singleData[item.prop] ! 0 &…

iOS字體像素與磅的對應關系

注意&#xff1a;低于iOS10的系統&#xff0c;顯示的字寬和字高比高于iOS10的系統小。 這就是iOS10系統發布時&#xff0c;很多app顯示的內容后面出現…&#xff0c;因而出現很多app為了適配iOS10系統而重新發布新版本。 用PS設計的iOS效果圖中&#xff0c;字體是以像素&#x…

SRM訂單管理:優化供應商關系

一、概述SRM訂單管理的概念&#xff1a; SRM訂單管理是指在供應商關系管理過程中&#xff0c;有效管理和控制訂單的創建、處理和交付。它涉及與供應商之間的溝通、合作和協調&#xff0c;旨在實現訂單的準確性、可靠性和及時性。 二、SRM訂單管理的流程&#xff1a; 1. 訂單創…

關于onload事件

onload事件是在網頁中的所有內容&#xff08;包括圖片、樣式表、腳本等&#xff09;都加載完成后觸發的事件。它常用于在頁面加載完成后執行一些操作&#xff0c;例如初始化頁面元素、綁定事件監聽器等。 可以通過以下方式來使用onload事件&#xff1a; 在HTML標簽中直接添加…

NGINX源碼安裝

文章目錄 NGINX源碼安裝安裝依賴包獲取源碼NGINX官方網站各個目錄的用途 編譯安裝安裝結束后的文件設置為服務 NGINX源碼安裝 安裝依賴包 root執行 yum -y install gcc gcc-c make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel這些包是用于開發和構建軟件…

遞歸的用法和例子

b站視頻&#xff1a;https://www.bilibili.com/video/BV1iS4y1e7MJ/?spm_id_from333.999.0.0&vd_source1717654b9cbbc6a773c2092070686a95 # 遞歸的定義&#xff1a;其實就是自己調用自己&#xff0c;一般用函數的形式來進行 """ 特點&#xff1a; 1、一定…

item_review-獲得TB商品評論

一、接口參數說明&#xff1a; item_review-獲得TB商品評論&#xff0c;點擊更多API調試&#xff0c;請移步注冊API賬號點擊獲取測試key和secret 公共參數 請求地址: https://api-gw.onebound.cn/taobao/item_review 名稱類型必須描述keyString是調用key&#xff08;點擊獲取…

輕拍牛頭(約數)

題意&#xff1a;求ai在n個數中&#xff0c;ai可以整除的數有多少個&#xff0c;不包括ai自己。 分析&#xff1a;暴力寫需要n^2的時間復雜度&#xff0c;此時想一下預處理每個數的倍數&#xff0c;約數和倍數是有關系的&#xff0c;把每個數的倍數都加上1. #include<bits…

騰訊云SA3服務器AMD處理器CPU網絡帶寬性能詳解

騰訊云AMD服務器SA3實例CPU采用2.55GHz主頻的AMD EPYCTM Milan處理器&#xff0c;睿頻3.5GHz&#xff0c;搭載最新一代八通道DDR4&#xff0c;內存計算性能穩定&#xff0c;默認網絡優化&#xff0c;最高內網收發能力達1900萬pps&#xff0c;最高內網帶寬可支持100Gbps。騰訊云…

typeScript 之 運算符

工具&#xff1a; PlayGround 算術運算符 運算符描述加-減*乘/除%取模(求余)自增–自減 注意和--&#xff0c;實例&#xff1a; let value 0; console.log(value); //0, 先顯示再增加后為1 console.log(value); //2&#xff0c;先增加后為2再顯示關系運算符 運算符描述 …

list.stream.filter,List<List>轉換為List

1.filter過濾 返回符合查詢條件的集合//過濾所有deviceType為1的List<DeviceWorkTimeEntity> list entities.stream().filter(a -> "1".equals(a.getDeviceType())).toList(); 2.List<List>轉換為List 可以使用流(Stream)的flatMap操作 public cl…

嵌入式Linux驅動開發系列五:Linux系統和HelloWorld

三個問題 了解Hello World程序的執行過程有什么用? 編譯和執行&#xff1a;Hello World程序的執行分為兩個主要步驟&#xff1a;編譯和執行。編譯器將源代碼轉換為可執行文件&#xff0c;然后計算機執行該文件并輸出相應的結果。了解這個過程可以幫助我們理解如何將代碼轉化…

從一到無窮大 #10 討論 Apache IoTDB 大綜述中看到的優劣勢

本作品采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。 本作品 (李兆龍 博文, 由 李兆龍 創作)&#xff0c;由 李兆龍 確認&#xff0c;轉載請注明版權。 文章目錄 引言問題定義新技術數據模型schemalessTsfile設計雙MemTable高級可擴展查詢其他 IotD…

兩天入門Linux、搭建Spring環境 第一天

一、Linux簡介 1.什么是Linux 一個操作系統&#xff0c;未來公司里面會用到、接觸的新操作系統。 2.為什么學Linux (1)個人職務需要&#xff0c;肯定會接觸到Linux (2)職業發展&#xff0c;以后的發展肯定需要掌握Linux的許多使用方法 3.學哪些內容 (1)Linux基本介紹 (2)…

EnableAutoConfiguration Attributes should be specified via @SpringBootApplic

在排除數據源加載時&#xff0c;發現這個注解EnableAutoConfiguration(exclude{DataSourceAutoConfiguration.class})會飄紅 這是因為在SpringBootApplication中已經有EnableAutoConfiguration注解了&#xff1b; 所以把它改寫成以下的格式即可

圖像變形之移動最小二乘算法(MLS)

基本原理 基于移動最小二乘的圖像變形是通過一組源控制點和目標控制點來控制變形&#xff0c;對于每一個待求變形后位置的點而言&#xff0c;根據預設的形變類型&#xff08;如仿射變換、相似變換、剛性變換&#xff09;求解一個最小二乘優化目標函數估計一個局部的坐標變換矩陣…

metaRTC7 demo mac/ios編譯指南

概要 metaRTC7.0開始全面支持mac/ios操作系統&#xff0c;新版本7.0.023 mac os demo 包含有srs/zlm的推拉流演示。發布版自帶了x64版第三方類庫&#xff0c;arm版第三方類庫還需開發者自己編譯。 源碼下載 下載文件metartc7.023.7z https://github.com/metartc/metaRTC/re…