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

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

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

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

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

/**
 * 下載單個文件
 *
 * @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);
  }
 }

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

npm install js-file-download --save

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

import fileDownload from "js-file-download";

 // 文檔操作列對應(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)前層級的列表
  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

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

這樣即可成功下載。

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

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

相關(guān)文章

最新評論

平南县| 桦川县| 嫩江县| 嘉禾县| 五峰| 会泽县| 多伦县| 上高县| 新巴尔虎左旗| 旬邑县| 庄河市| 池州市| 孝义市| 安新县| 台湾省| 西宁市| 昂仁县| 宕昌县| 华安县| 盐山县| 卓资县| 都兰县| 马山县| 五台县| 城固县| 台州市| 武清区| 西林县| 桃园市| 孝昌县| 西乌| 辰溪县| 泽普县| 武乡县| 峡江县| 石嘴山市| 巴彦县| 扶沟县| 乌兰县| 昌黎县| 施甸县|