2020-11-04

Oss 对象服务存储前端方法封装

Oss 对象服务存储前端方法封装

1、根据oss url 获取文件数据流

/** * @description 获取文件数据流 * @author easten * @date 2020-07-16 * @export * @param {*} files 文件列表 * @returns 文件数据流对象 */export function getFileStream(files) { return new Promise(resolve => { if (files.length > 0) {  let data = [];  files.forEach(item => {  ossRepository   .download(getFileUrl(item.url), p => {})   .then(res => {   data.push({    name: `${item.name}${item.type}`,    blob: res,   });   if (data.length == files.length) {    resolve(data);   }   });  }); } });}

2、文件单个/多个下载

export function fileDownload(files) { if (files instanceof Array) { // 多文件打包下载 getFileStream(files).then(datas => {  // 拼装压缩包格式  if (datas.length > 0) {  SaveMultipleFile(`附件.zip`, datas).then(() => {   console.log('下载成功');  });  } }); } else { // 单文件下载 ossRepository  .download(getFileUrl(files.url), progress => {})  .then(blob => {  SaveSingleFile(`${files.name}${files.type}`, files.size, blob).then(a => {   console.log('下载成功');  });  }); }}/** * @description 批量下载 * @author easten * @date 2020-07-13 * @export * @param {*} zipName 压缩包名称 * @param {*} files 需要压缩的文件信息 */export function SaveMultipleFile(zipName, files) { return new Promise((resolve,error) => { // 首先定义一个文件夹 let zip=new JSZIP(); files.forEach(a=>{  zip.file(a.name,a.blob); }); zip.generateAsync({type:"blob"}) .then(function(content) {  saveAs(content, zipName);  resolve(); }).catch(()=>{  error(); }); });}

3、常用的文件类型

export let resourceIcon = { folder: 'folder-open', xls: 'file-excel', xlsx: 'file-excel', md: 'file-markdown', pdf: 'file-pdf', ppt: 'file-ppt', txt: 'file-text', doc: 'file-word', unknown: 'file-unknown', zip: 'file-zip', other: 'file', jpg: 'file-image',};// 创建文件格式对应表export const FileTypes = [ { k: 'audio/3gpp', v: '3gpp' }, { k: 'video/3gpp', v: '3gpp' }, { k: 'audio/ac3', v: 'ac3' }, { k: 'allpication/vnd.ms-asf', v: 'asf' }, { k: 'audio/basic', v: 'au' }, { k: 'text/css', v: 'css' }, { k: 'text/csv', v: 'csv' }, { k: 'application/msword ', v: 'dot' }, { k: 'application/

4、文件大小转换

/** * @description 文件大小转换 * @author easten * @date 2020-07-08 * @export * @param {*} fileSize * @returns kb GB G */export function FileSizeTrans(fileSize) { let size = ''; if (fileSize < 0.1 * 1024) { //如果小于0.1KB转化成B size = fileSize.toFixed(2) + 'B'; } else if (fileSize < 0.1 * 1024 * 1024) { //如果小于0.1MB转化成KB size = (fileSize / 1024).toFixed(2) + 'KB'; } else if (fileSize < 0.1 * 1024 * 1024 * 1024) { //如果小于0.1GB转化成MB size = (fileSize / (1024 * 1024)).toFixed(2) + 'MB'; } else { //其他转化成GB size = (fileSize / (1024 * 1024 * 1024)).toFixed(2) + 'GB'; }

原文转载:http://www.shaoqun.com/a/488089.html

catch:https://www.ikjzd.com/w/832

topia:https://www.ikjzd.com/w/2741

网易考拉海购大促:https://www.ikjzd.com/w/1052


Oss对象服务存储前端方法封装1、根据ossurl获取文件数据流/***@description获取文件数据流*@authoreasten*@date2020-07-16*@export*@param{*}files文件列表*@returns文件数据流对象*/exportfunctiongetFileStream(files){returnnewPromise(resolve=>{if(fi
telegram:https://www.ikjzd.com/w/1734
pat:https://www.ikjzd.com/w/1079
深圳到宝桑园怎么走?深圳到宝桑园开车路线?:http://tour.shaoqun.com/a/23871.html
跨境再添利好,医药电商新政在北京落地:https://www.ikjzd.com/home/113746
香港必吃的美食哪些?:http://tour.shaoqun.com/a/7671.html

No comments:

Post a Comment