日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

.netcore+vue 實現壓縮文件下載功能

瀏覽:31日期:2022-11-18 16:04:07

一.前言

目前接觸的項目中,給定的需求是將系統內所有用戶的數據整理好,并保存到文件夾內,目的主要是防止用戶在實施人員已配置好的基礎上由于不熟悉系統,導致的誤刪或者誤操作。減少實施人員的配置工作。我首先想到的就是將數據導入到Excel中,并以各個用戶的名稱命名文件夾做好分類。

vue下實現Excel導入這個我們見的比較多了,當時我也確實實現了下載Excel的功能,但是后續發現保存的文件都在服務器上,那就有一個問題了,實施人員是通過頁面點擊的一鍵保存按鈕,數據也確實保存了,但是卻是在服務器上,如果想實時看到數據呢,是不是還要去服務器上拷貝一份下來。相對來講確實比較繁瑣,所以整理了下載壓縮文件到本地的功能,一起看一下怎么實現的吧。

1.1.net core 壓縮文件

思路是在后臺將文件夾整體壓縮為zip格式的壓縮包,并返回文件流到前端,然后前端接收文件流實現瀏覽器下載的功能。

后端代碼,將

public async Task<FileStreamResult> DownloadFiles(DownLoadModel input) { if (!Directory.Exists(input.pathUrl)) {throw new UserFriendlyException('當前要下載的文件夾不存在或已刪除'); } var zipFileUrl = _configurationRoot['downLoadUrlConf:downloadZipFileUrl']; if (File.Exists(zipFileUrl)) {File.Delete(zipFileUrl); } ZipHelper.CreateZip(input.pathUrl, zipFileUrl); var memoryStream = new MemoryStream(); using (var stream = new FileStream(zipFileUrl, FileMode.Open)) {await stream.CopyToAsync(memoryStream); } memoryStream.Seek(0, SeekOrigin.Begin); return new FileStreamResult(memoryStream, 'application/octet-stream');//文件流方式,指定文件流對應的ContenType。 }

public static class ZipHelper { /// <summary> /// 壓縮文件 /// </summary> /// <param name='sourceFilePath'></param> /// <param name='destinationZipFilePath'></param> public static void CreateZip(string sourceFilePath, string destinationZipFilePath) { if (sourceFilePath[sourceFilePath.Length - 1] != System.IO.Path.DirectorySeparatorChar)sourceFilePath += System.IO.Path.DirectorySeparatorChar; ZipOutputStream zipStream = new ZipOutputStream(File.Create(destinationZipFilePath)); zipStream.SetLevel(6); // 壓縮級別 0-9 CreateZipFiles(sourceFilePath, zipStream, sourceFilePath); zipStream.Finish(); zipStream.Close(); } /// <summary> /// 遞歸壓縮文件 /// </summary> /// <param name='sourceFilePath'>待壓縮的文件或文件夾路徑</param> /// <param name='zipStream'> /// <param name='staticFile'></param> private static void CreateZipFiles(string sourceFilePath, ZipOutputStream zipStream, string staticFile) { Crc32 crc = new Crc32(); string[] filesArray = Directory.GetFileSystemEntries(sourceFilePath); foreach (string file in filesArray) {if (Directory.Exists(file)) //如果當前是文件夾,遞歸{ CreateZipFiles(file, zipStream, staticFile);}else //如果是文件,開始壓縮{ FileStream fileStream = File.OpenRead(file); byte[] buffer = new byte[fileStream.Length]; fileStream.Read(buffer, 0, buffer.Length); string tempFile = file.Substring(staticFile.LastIndexOf('') + 1); ZipEntry entry = new ZipEntry(tempFile); entry.DateTime = DateTime.Now; entry.Size = fileStream.Length; fileStream.Close(); crc.Reset(); crc.Update(buffer); entry.Crc = crc.Value; zipStream.PutNextEntry(entry); zipStream.Write(buffer, 0, buffer.Length);} } } }

其中CreateZip方法傳入一個源文件的路徑,一個目標文件的路徑,這里我的目標文件設置在appsetting.json里是個臨時路徑,只為前端當次下載使用。這樣我們就在后臺將數據以壓縮包的形式壓縮好,并返回數據流給前端了。

1.2 vue 下載壓縮文件

<el-button icon='el-icon-download' size='mini' type='primary' @click='downloadFile' >下載文件到本地</el-button>

downloadFile() { this.loading = true; let postData = { pathUrl: this.filePathMag }; AjaxHelper.post(this.downLoadUrl, postData, { responseType: 'blob', }).then((res) => { // 處理返回的文件流 const content = res.data; const blob = new Blob([content], { type: 'application/zip' }); const fileName = this.tenant.name + '配置信息.zip'; if ('download' in document.createElement('a')) { // 非IE下載 const elink = document.createElement('a'); elink.download = fileName; elink.style.display = 'none'; elink.href = URL.createObjectURL(blob); document.body.appendChild(elink); elink.click(); URL.revokeObjectURL(elink.href); // 釋放URL 對象 document.body.removeChild(elink); } else { // IE10+下載 navigator.msSaveBlob(blob, fileName); } this.loading = false; }); },

之前下載Excel時,我們傳入后端的content-type為'application/json;application/octet-stream',經過測試發現壓縮文件不能使用這種content-type,所以我們去掉了。另外就是const blob = new Blob([content], { type: 'application/zip' });這行代碼,如果不加,雖然也能下載,但是下載后的壓縮包卻無法打開,提示壓縮不正確或壓縮包已損壞。

好了,到此壓縮文件的下載就完成了,由于我也是第一次遇到壓縮文件的下載,經過摸索終于解決了問題。看起來也比較簡單,你學會使用了嗎?

總結

到此這篇關于.netcore+vue 實現壓縮文件下載的文章就介紹到這了,更多相關vue 實現壓縮文件下載內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
成人免费电影网址| 精品日韩毛片| 日本中文字幕一区二区视频| 五月天久久网站| 五月天久久网站| 最新亚洲一区| 中文字幕亚洲在线观看| 欧美一级全黄| 精品国产不卡| 人在线成免费视频| 亚洲a在线视频| 日韩精品视频网| 精品高清久久| 91国语精品自产拍| 日韩欧美高清一区二区三区| 亚洲+小说+欧美+激情+另类| 国产麻豆一区| 激情综合自拍| 日本视频中文字幕一区二区三区| 精品国产乱码久久久久久樱花| 欧美va天堂| 国产欧美91| 伊人久久婷婷| 国产第一亚洲| 日韩中文字幕视频网| 伊人久久av| 亚洲香蕉视频| 四虎4545www国产精品| 偷拍亚洲精品| 在线精品小视频| 日本免费新一区视频| 久久视频一区| 麻豆精品视频在线观看视频| 亚洲中字黄色| 国产v日韩v欧美v| 日韩欧美精品一区二区综合视频| 日本在线啊啊| 国产精品嫩模av在线| 香蕉国产精品| 久久久久一区| 国产videos久久| 国产精品一区毛片| 婷婷综合国产| 国产福利电影在线播放| 国产精品成人自拍| 蜜臀久久99精品久久久久宅男| av中文字幕在线观看第一页 | 悠悠资源网久久精品| 国产欧洲在线| 麻豆精品一区二区综合av| 国产欧美综合一区二区三区| 日韩专区欧美专区| 九九在线精品| 欧美综合另类| 亚洲午夜黄色| 婷婷亚洲五月| 欧美不卡视频| 午夜在线观看免费一区| 色天使综合视频| 99久久99久久精品国产片果冰| 天堂√中文最新版在线| 在线一区av| 亚洲国产成人精品女人| 尤物精品在线| 亚洲三级网址| 国产精品中文| 成人片免费看| 免费欧美一区| 日欧美一区二区| 国产日韩在线观看视频| 麻豆精品久久久| 日韩欧美一区二区三区免费观看| 麻豆国产在线| 日韩欧美三级| 狠狠爱www人成狠狠爱综合网| 国产视频一区免费看| 日韩专区视频网站| 国产精品sss在线观看av| 亚洲成a人片| 亚洲一区二区小说| 欧美国产日韩电影| 91精品在线观看国产| 蜜臀av性久久久久蜜臀aⅴ四虎| 18国产精品| 日韩一区二区在线免费| 中文在线一区| 国产中文字幕一区二区三区| 91精品二区| 亚洲精品自拍| 福利片在线一区二区| 鲁大师成人一区二区三区| 国产福利一区二区精品秒拍| 久久九九99| 国产亚洲观看| 爽好久久久欧美精品| 成人一二三区| 亚洲aa在线| 欧美成人综合| 18国产精品| 偷拍欧美精品| 国际精品欧美精品| 中文字幕日韩高清在线| 999国产精品永久免费视频app| 不卡中文一二三区| 久久一区国产| 少妇精品久久久| 国产亚洲综合精品| 久久美女性网| 久久天堂av| 久久不卡日韩美女| 麻豆9191精品国产| 免费高潮视频95在线观看网站| 国产伦精品一区二区三区视频| 亚洲欧美久久久| 久久国产影院| 樱桃成人精品视频在线播放| 日韩精品首页| 一区二区三区四区日本视频| 日本少妇精品亚洲第一区| 日本一区中文字幕| 亚洲乱码视频| 日韩精品午夜视频| 日韩高清一区二区| 亚洲第一区色| 宅男在线一区| 黄色亚洲大片免费在线观看| 亚洲女同中文字幕| 香蕉久久国产| 婷婷综合成人| 欧美黑人巨大videos精品| 国产精品v日韩精品v欧美精品网站 | 亚洲精选av| 日本不卡高清| 国产精品亚洲四区在线观看| 国产精区一区二区| 精品亚洲成人| 亚洲香蕉网站| 亚洲麻豆一区| 日韩av成人高清| 韩国一区二区三区视频| 国产在线看片免费视频在线观看| 国模 一区 二区 三区| 欧美福利在线| 日韩精品高清不卡| 久久不见久久见国语| 日本韩国欧美超级黄在线观看| 亚洲一区二区成人| 国产精品久久亚洲不卡| 欧美日韩国产v| 丝袜美腿高跟呻吟高潮一区| 久久99影视| 黄色成人精品网站| 欧美午夜网站| 欧美日韩在线观看视频小说| 日韩av中文在线观看| 国产精品99视频| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲另类视频| 日本久久成人网| 国产精品视频一区二区三区四蜜臂 | 99久久亚洲精品蜜臀| 视频一区日韩精品| 日韩欧美精品综合| 欧美欧美黄在线二区| 国产91精品对白在线播放| 日韩不卡免费视频| 欧美羞羞视频| 国产精品蜜月aⅴ在线| 蜜臀精品久久久久久蜜臀| 国产精品成久久久久| 日韩黄色在线观看| 欧美日韩一区二区三区视频播放| 国产精品久久国产愉拍| 先锋亚洲精品| 蜜桃tv一区二区三区| 亚洲精品**中文毛片| 久久激五月天综合精品| 免费人成精品欧美精品| 偷拍精品精品一区二区三区| 国产精品久久| 久久黄色影视| 国产在线日韩| 91精品国产乱码久久久久久久 | 国产精一区二区| 欧美中文一区| 一区二区国产在线观看| 国产亚洲精品自拍| 亚洲一区二区三区四区五区午夜| 久久精品观看| 欧美影院三区| 伊人久久大香线蕉av不卡| 高潮久久久久久久久久久久久久| 一区二区自拍| 免费在线观看成人| 激情欧美一区二区三区| 久久超级碰碰| 国产66精品| 亚洲人妖在线| 四虎精品永久免费| 久久国产麻豆精品|