最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue實(shí)現(xiàn)下載文件流完整前后端代碼

 更新時(shí)間:2020年11月17日 14:56:51   作者:小狐貍和小兔子  
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)下載文件流完整前后端代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

使用Vue時(shí),我們前端如何處理后端返回的文件流

首先后端返回流,這里我把流的動(dòng)作拿出來了,我很多地方要用

/**
 * 下載單個(gè)文件
 *
 * @param docId
 */
 @GetMapping("/download/{docId}")
 public void download(@PathVariable("docId") String docId,
       HttpServletResponse response) {
  outWrite(response, docId);
 }
 
 /**
 * 輸出文件流
 * @param response
 * @param docId
 */
 private void outWrite(HttpServletResponse response, String docId) {
  ServletOutputStream out = null;
  try {
   out = response.getOutputStream();
   // 禁止圖像緩存。
   response.setHeader("Pragma", "no-cache");
   response.setHeader("Cache-Control", "no-cache");
   response.setDateHeader("Expires", 0);
   byte[] bytes = docService.downloadFileSingle(docId);
   if (bytes != null) {
    MagicMatch match = Magic.getMagicMatch(bytes);
    String mimeType = match.getMimeType();
    response.setContentType(mimeType);
    out.write(bytes);
   }
   out.flush();
  } catch (Exception e) {
   UnitedLogger.error(e);
  } finally {
   IOUtils.closeQuietly(out);
  }
 }

前端這里我引入了一個(gè)組件 js-file-download

npm install js-file-download --save

然后在Vue文件中添加進(jìn)來

import fileDownload from "js-file-download";

 // 文檔操作列對(duì)應(yīng)事件
 async handleCommand(item, data) {
  switch (item.key) {
  case "download":
   var res = await this.download(data);
   return fileDownload(res, data.name);
  ...
  default:
  }
  // 刷新當(dāng)前層級(jí)的列表
  const folder = this.getLastFolderPath();
  this.listClick(folder.folderId, folder.name);
 },
 // 下載
 async download(row) {
  if (this.isFolder(row.type)) {
  return FolderAPI.download(row.id);
  } else {
  return DocAPI.download(row.id);
  }
 },

docAPI js 注意需要設(shè)置responseType

/**
 * 下載單個(gè)文件
 * @param {*} id
 */
const download = (id) => {
 return request({
 url: _DataAPI.download + id,
 method: "GET",
 responseType: 'blob'
 });
};

這樣即可成功下載。

關(guān)于vue.js的學(xué)習(xí)教程,請(qǐng)大家點(diǎn)擊專題vue.js組件學(xué)習(xí)教程、Vue.js前端組件學(xué)習(xí)教程進(jìn)行學(xué)習(xí)。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

宣城市| 苍南县| 临泽县| 昌黎县| 乐安县| 平罗县| 鸡西市| 错那县| 曲麻莱县| 山东省| 峡江县| 西和县| 会宁县| 湟源县| 聂拉木县| 涟水县| 保亭| 衡水市| 台北市| 乡城县| 三穗县| 石城县| 长武县| 阿拉善左旗| 保康县| 桓仁| 新泰市| 江华| 武强县| 明星| 原阳县| 阜城县| 油尖旺区| 沙湾县| 沧源| 博客| 泸水县| 大厂| 茂名市| 平武县| 南宁市|