JS | 七牛云上傳圖片視頻

“無言獨(dú)上西樓序调,月如鉤醉锅,寂寞梧桐深院鎖清秋。剪不斷炕置,理還亂荣挨,是離愁男韧,別是一般滋味在心頭∧ⅲ”
—— 題記此虑,引自《相見歡》

正文


最近新寫個項(xiàng)目,需要上傳視頻口锭,用了七牛的JavaScriptSDK朦前,七牛云文檔其實(shí)講的很清楚,引用代碼記錄下鹃操。

Paste_Image.png
      var option1 = {
        runtimes: 'html5,flash,html4',
        browse_button: 'pickfiles',
        container: 'container',
        drop_element: 'container',
        max_file_size: '1000mb',
        filters : { mime_types: [ {title: "Video files", extensions : "flv,mpg,mpeg,avi,wmv,mov,asf,rm,rmvb,mkv,m4v,mp4"}] },
        flash_swf_url: '/static/js/Moxie.swf',
        dragdrop: true,
        chunk_size: '4mb',
        multi_selection: false,
        uptoken_func: function(){
          var ajax = new XMLHttpRequest();
          ajax.open('GET', location.origin + '/cloud/video/uploadtoken', false);
          ajax.setRequestHeader("If-Modified-Since", "0");
          ajax.send();
          if (ajax.status === 200) {
            var res = JSON.parse(ajax.responseText);
            console.log(res)
            if (res.data && res.data.video && res.data.video.qiniu) {
              var token = res.data.video.qiniu.upToken; 
              console.log(res.data);
              self.keys = res.data.video.qiniu.key;
              return token;
            }
            return '';
          }
        },
        domain: 'http://video01.jiuyan.info/',
        get_new_uptoken: false,
        auto_start: true,
        log_level: 5,
        init: {
          'FilesAdded': function(up, files) {
            $('table').show();
            plupload.each(files, function(file) {
              var progress = new FileProgress(file, 'fsUploadProgress');
              progress.setStatus("等待...");
              progress.bindUploadCancel(up);
            });
          },
          'BeforeUpload': function(up, file) {
            var progress = new FileProgress(file, 'fsUploadProgress');
            var chunk_size = plupload.parseSize(this.getOption('chunk_size'));
            if (up.runtime === 'html5' && chunk_size) {
                progress.setChunkProgess(chunk_size);
            }
          },
          'UploadProgress': function(up, file) {
            var progress = new FileProgress(file, 'fsUploadProgress');
            var chunk_size = plupload.parseSize(this.getOption('chunk_size'));
            progress.setProgress(file.percent + "%", file.speed, chunk_size);
            console.log(file)
          },
          // 'UploadComplete': function() { $('#success').show(); },
          'FileUploaded': function(up, file, info) {
            // var k = info;
            self.video_info = info;
            var cover_info = $.parseJSON(info)

            // self.data.video_hash = k.hash;
            console.log(info)

            // console.log(info.key)
            // console.log(k.key)

            // console.log(self.data.video_info)

            console.log('success')
            var progress = new FileProgress(file, 'fsUploadProgress');
            progress.setComplete(up, info);
            $('#pickfiles span').html('重新上傳')
          },
          'Error': function(up, err, errTip) {
            $('table').show();
            var progress = new FileProgress(err.file, 'fsUploadProgress');
            progress.setError();
            progress.setStatus(errTip);
          },
          'Key': function(up, file) {
            var key = self.keys.shift();
            // do something with key
            return key
          }
        }
      }
      var uploader = Qiniu.uploader(option1);

      uploader.bind('FileUploaded', function() {
        console.log('hello man,a file is uploaded');
      });

      var Qiniu2 = new QiniuJsSDK();
      var option2 = {
        runtimes: 'html5,flash,html4',
        browse_button: 'info-cover',
        container: 'container',
        drop_element: 'container',
        max_file_size: '1000mb',
        filters : { mime_types: [ {title: "Image files", extensions : "jpg,png,jpeg"}] },
        flash_swf_url: '/static/js/Moxie.swf',
        dragdrop: true,
        chunk_size: '4mb',
        multi_selection: false,
        uptoken_func: function(){
          var ajax = new XMLHttpRequest();
          ajax.open('GET', location.origin + '/cloud/video/uploadtoken', false);
          ajax.setRequestHeader("If-Modified-Since", "0");
          ajax.send();
          if (ajax.status === 200) {
            var res = JSON.parse(ajax.responseText);
            if (res.data && res.data.cover && res.data.cover.qiniu) {
              var token = res.data.cover.qiniu.upToken;
              console.log(res.data) 
              self.coverkeys = res.data.cover.qiniu.key;
              return token;
            }
            return '';
          }
        },
        domain: 'http://inimg01.jiuyan.info/',
        get_new_uptoken: false,
        auto_start: true,
        log_level: 5,
        init: {
          'FilesAdded': function(up, files) {
          },
          'BeforeUpload': function(up, file) {
          },
          'UploadProgress': function(up, file) {
          },
          // 'UploadComplete': function() { $('#success').show(); },
          'FileUploaded': function(up, file, info) {
            // var k = info;
            self.cover_info = info;
            console.log(info)
            var result_url = up.getOption('domain') + $.parseJSON(info).key
            document.getElementById('loader-wrap').className = 'loader-wrap'
            var coverWrap = document.getElementById('cover-wrap')
            coverWrap.style.backgroundImage = "url(" + result_url + ")";
            self.isActive = true;
            console.log('success')
          },
          'Error': function(up, err, errTip) {
          },
          'Key': function(up, file) {
            var key = self.coverkeys.shift();
            // // do something with key
            return key
          }
        }
      }
      var uploader2 = Qiniu2.uploader(option2);

      uploader2.bind('FileUploaded', function() {
        console.log('hello man 2,a file is uploaded');
      });

      $('#info-cover').on('click', function(){
        uploader2.start();
      });

參考文章:
https://developer.qiniu.com/kodo/sdk/javascript#8

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末韭寸,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子荆隘,更是在濱河造成了極大的恐慌恩伺,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件椰拒,死亡現(xiàn)場離奇詭異晶渠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)燃观,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門褒脯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人缆毁,你說我怎么就攤上這事番川。” “怎么了脊框?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵颁督,是天一觀的道長。 經(jīng)常有香客問我缚陷,道長适篙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任箫爷,我火速辦了婚禮嚷节,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘虎锚。我一直安慰自己硫痰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布窜护。 她就那樣靜靜地躺著效斑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪柱徙。 梳的紋絲不亂的頭發(fā)上缓屠,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天奇昙,我揣著相機(jī)與錄音,去河邊找鬼敌完。 笑死储耐,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的滨溉。 我是一名探鬼主播什湘,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晦攒!你這毒婦竟也來了闽撤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤脯颜,失蹤者是張志新(化名)和其女友劉穎哟旗,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伐脖,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡热幔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了讼庇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡近尚,死狀恐怖蠕啄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情戈锻,我是刑警寧澤歼跟,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站格遭,受9級特大地震影響哈街,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拒迅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一骚秦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧璧微,春花似錦作箍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屹电,卻和暖如春阶剑,著一層夾襖步出監(jiān)牢的瞬間跃巡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工牧愁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瓷炮,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓递宅,卻偏偏與公主長得像娘香,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子办龄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354