亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

js純前端實現騰訊cos文件上傳功能的示例代碼

2019-11-19 11:34:31
字體:
來源:轉載
供稿:網友

前言

在前端開發中文件上傳是經常會遇到的,并且多數情況會使用第三方平臺來存儲文件,騰訊云cos是我們常用的。本篇文章就是帶我從前端的角度實現騰訊云COS存儲。本文參考了騰訊云COS開發文檔 JavaScript SDK

步驟

安裝騰訊云COS上傳所需的sdk

下載cos-js-sdk-v5.min.js并引入index.html

監聽文件上傳組件

//監聽文件變化document.getElementById('file').onchange = function() {          let file = this.files[0];          let type = file.type          //初始化文件上傳          initUploadObj(that, file.name, file, 'image', function(res) {            if (res.success) {              that.$message.success(res.msg)            } else {              that.$message.warning(res.msg)            }          })        }

初始化文件上傳對象(封裝起來其他地方上傳也可以用)

/** * 初始化上傳文件對象 * @param {object} Vue * @param {string} fileName 文件名 * @param {object} file 上傳的文件流及文件類型 名稱相關信息 * @param {Array} 允許上傳的文件類型 * @param {function} uploadStatusCallbalck * @return {function} 返回回調函數 */export const initUploadObj = function (Vue,fileName,file,type,uploadStatusCallbalck) { let fileInfo = {  file_name: fileName,  media_type: 2,  media_sub_type: 0,  size_of_bytes: 122,  file_expired_type: 'permanent', }; //前端做文件類型限制 if(type == 'image'){  type = ['.jpg','.gif','.jpeg','.bmp','.png'] } if(type == 'excel'){  type = ['.xlsx'] } let fileType =file.name ? file.name.substring(file.name.lastIndexOf(".")).toLowerCase() : '';  if (!!type && type.indexOf (fileType) < 0) {  uploadStatusCallbalck ({success: false, msg: '請上傳正確的'+type+'文件格式!'});  return; } var cos = new COS ({  getAuthorization: function (options, callback) {   let singleInfo = Vue.$store.state.fileToken;   callback ({    TmpSecretId: singleInfo.tmpSecretId,    TmpSecretKey: singleInfo.tmpSecretKey,    XCosSecurityToken: singleInfo.sessionToken,    ExpiredTime: singleInfo.expiredTime,   });  }, }); fileInfo.file_name = file.name; //獲取文件上傳密鑰 getFileToken (Vue, fileInfo, cos, file, uploadStatusCallbalck);};

獲取文件上傳密鑰(最好存在后端通過ajax請求獲取,安全性較高)

function getFileToken (Vue, fileInfo, cos, file, uploadStatusCallbalck) { let url = process.env.VUE_APP_URL + '/file/secretid'; if (!file) return; // 異步獲取臨時密鑰 axios  .get (url)  .then (function (res) {   if (res.data.code == 100000) {    //獲取的臨時秘鑰存儲在vuex中    Vue.$store.commit ('UPDATE_FILE_INFO', res.data.data);    uploadFile (cos, file, res.data.data, uploadStatusCallbalck);   } else {    uploadStatusCallbalck ({success: false, msg: '獲取文件秘鑰失敗!'});   }  })  .catch (function (err) {   uploadStatusCallbalck ({success: false, msg: '獲取文件秘鑰接口出錯!'});  });}

上傳文件(調用相關api putObject來上傳文件)

/** * @method uploadFile * @param {object} cos */function uploadFile (cos, file, signInfo, callback) { cos.putObject (  {   Bucket: process.env.VUE_APP_BUCKET,   Region: 'ap-shanghai',   Key: signInfo.fileId,   Body: file,   onHashProgress: function (progressData) {    console.log ('校驗中', JSON.stringify (progressData));   },   onProgress: function (progressData) {    console.log ('上傳中', JSON.stringify (progressData));   },  },  function (err, data) {   if (err) {    console.log (err);    callback ({success: false, msg: '文件上傳失敗!'});    return;   }   callback ({success: true, msg: '上傳成功!', data: data, signInfo: signInfo});  } );}

總結

騰訊云cos文件上傳實際是分為三步,本地表單處理文件流 => 根據文檔獲取相關參數 => 上傳文件。

  • 第一步主要前端上傳功能的處理,可以用來限制文件上傳大小(不太準確,根據文件的字節流長度),文件上傳類型(根據文件后綴名)。
  • 第二步的參數多數都是可以在cos賬號后臺拿到的。這塊參數最好還是存儲在后臺比較安全。
  • 第三步上傳我們只需要調用sdk相關接口傳入參數即可。只要熟悉了這三個步驟,上傳的大部分問題都能解決掉。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲性69xxxbbb| 精品国产一区二区三区久久| 欧美自拍视频在线| 久久久久久久久亚洲| 亚洲91精品在线观看| 亚洲国内高清视频| 98视频在线噜噜噜国产| 精品国产乱码久久久久久虫虫漫画| 久久伊人免费视频| 亚洲片国产一区一级在线观看| 欧美裸体男粗大视频在线观看| 亚洲男人的天堂在线播放| 最新69国产成人精品视频免费| 51ⅴ精品国产91久久久久久| 丝袜亚洲另类欧美重口| 精品成人乱色一区二区| 欧美激情亚洲视频| 欧美福利小视频| 亚洲综合社区网| 久久久综合免费视频| 久久久久免费视频| 96精品久久久久中文字幕| 中文综合在线观看| 亚洲第一黄色网| 亚洲欧美激情精品一区二区| 91产国在线观看动作片喷水| 欧美性xxxx18| 国产视频精品va久久久久久| 国产精品亚洲片夜色在线| 精品av在线播放| 久久久久久久久久久成人| 亚洲精品电影在线观看| 久久99青青精品免费观看| 欧美高清在线观看| 日韩毛片中文字幕| 亚洲精品按摩视频| 国产成人一区二区三区电影| 亚洲激情中文字幕| 中文字幕国产精品| 国产精品久久久久免费a∨大胸| 欧美性jizz18性欧美| 精品国产福利在线| 国产精品欧美一区二区| 91精品国产一区| 国产手机视频精品| 日韩一区在线视频| 欧美日韩国产综合视频在线观看中文| 人妖精品videosex性欧美| 一个色综合导航| 日韩av片永久免费网站| 亚洲欧美综合v| 国产欧美日韩精品在线观看| 亚洲资源在线看| 日本道色综合久久影院| 欧美日韩国产区| 国产精自产拍久久久久久| 日本欧美一二三区| 亚洲女人天堂色在线7777| 亚洲一区中文字幕| 欧美日韩爱爱视频| 亚洲精品按摩视频| 91精品国产91久久久久| 琪琪亚洲精品午夜在线| 亚洲风情亚aⅴ在线发布| 亚洲成人三级在线| 欧美极品少妇xxxxⅹ裸体艺术| 亚洲第一区中文字幕| 欧美一级视频在线观看| 日韩欧美一区二区三区| 久久综合伊人77777| 国产精品久久久久久av福利软件| 日韩国产欧美区| 亚洲午夜女主播在线直播| 国产美女主播一区| 欧美自拍视频在线观看| 久久精品男人天堂| 亚洲国产成人爱av在线播放| 美女少妇精品视频| 日本91av在线播放| 激情av一区二区| 精品调教chinesegay| 亚洲成人1234| 亚洲国产美女精品久久久久∴| 91产国在线观看动作片喷水| 久久影视电视剧免费网站清宫辞电视| 久久精品成人一区二区三区| 狠狠久久五月精品中文字幕| 国产日韩欧美日韩| 亚洲电影免费观看高清完整版在线| 国产精品色悠悠| 亚洲男人7777| 日韩视频永久免费观看| 97热在线精品视频在线观看| 国产综合在线视频| 亚洲欧美中文日韩在线| 国产免费一区视频观看免费| www.日韩欧美| 97久久精品国产| 粉嫩老牛aⅴ一区二区三区| 欧美黑人极品猛少妇色xxxxx| 久久免费高清视频| 91理论片午午论夜理片久久| 自拍偷拍亚洲在线| 欧美精品在线免费观看| 国产成+人+综合+亚洲欧洲| 日韩毛片中文字幕| 九九九久久国产免费| 88xx成人精品| 久久99久久99精品免观看粉嫩| 久久久精品国产一区二区| 国产小视频91| 亚洲精品狠狠操| 久久人人爽人人爽人人片av高请| 奇米四色中文综合久久| 2019中文字幕在线观看| 亚洲人成网站免费播放| 欧美又大粗又爽又黄大片视频| 久久中文久久字幕| 日本免费久久高清视频| 国产一区二区三区在线观看网站| 欧美丰满少妇xxxxx| 日韩av在线导航| 国产精品91在线观看| 高跟丝袜欧美一区| 欧美尺度大的性做爰视频| 久久av红桃一区二区小说| 精品亚洲男同gayvideo网站| 日韩视频一区在线| 国产精品成人一区二区| 国产91露脸中文字幕在线| 日韩精品免费在线观看| 欧美激情三级免费| 最近2019中文字幕在线高清| 欧美激情在线观看视频| 69av在线视频| 欧美三级免费观看| 精品国内亚洲在观看18黄| 亚洲精品电影网| 亚洲aa中文字幕| 亚洲男人的天堂在线| 国产精品无码专区在线观看| 亚洲精品有码在线| 成人激情电影一区二区| 日韩av影视综合网| 国产精品流白浆视频| 91国在线精品国内播放| 精品精品国产国产自在线| 亚洲欧洲日本专区| 国产精品女人久久久久久| 久久在精品线影院精品国产| 亚洲国产精品久久91精品| 97国产精品人人爽人人做| 亚洲系列中文字幕| 久久久久久久久久久成人| 欧美激情欧美激情在线五月| 午夜精品一区二区三区视频免费看| 91精品国产综合久久香蕉的用户体验| 日韩高清电影好看的电视剧电影| 欧美激情亚洲视频| 黑人精品xxx一区一二区| 国产精品高潮粉嫩av| 欧美日韩国产中文精品字幕自在自线| 91亚洲精品视频| 亚洲bt欧美bt日本bt|