七牛云存储---JavaScript SDK 简朴上传,走过的几个坑

先放上几个用到的七牛官方网站:

JavaScript SDK地点
须要在页面中先引入 plupload 供应的 plupload.full.min.js(临盆环境)
然后再引入SDK里的 qiniu.min.js(临盆环境)

在线天生uptoken地点
uptoken上传须要用到,正式项目平常由背景天生,这里我们做测试,用本身的ak、sk、bucketName去官方天生一个(有时效性)。
AK和SK:七牛账号内里供应。
bucketName:本身设定的七牛云存储空间名,建立存储空间的时刻注重地区(应当默许是华东),不一样地区须要修正下qiniu.min.js内里指定的上传的域名,请去参考官方文档
别的:可选的都可不填。

检测uptoken是不是可用地点(可否胜利上传)地点
token:上面天生的本身的token。
key:能够不填。
关于测试天生的token是不是可用,也能够参考这个网站供应的demo,按他的申明修正demo内里的两个值就能够推断本身的token是不是可用,并且有反应,依据反应的erro参考官方文档。

症结代码

html

<div id="container">
    <button id="pickfiles" >点击上传</button>
</div>

<script type="text/javascript" src="plupload.full.min.js"></script>
<script type="text/javascript" src="qiniu.min.js"></script>
<script type="text/javascript" src="main.js"></script>

这里要用button标签,然后id和js要领中Qiniu.uploader的browse_button绑定。
这里用input标签type="file"不可!

js

 //引入Plupload 、qiniu.js后
  var uploader = Qiniu.uploader({
      runtimes: 'html5,flash,html4',    //上传情势,顺次退步
      browse_button: 'pickfiles',       //上传挑选的点选按钮,**必需**
      uptoken: 'myToken',
      //uptoken_url: '/token',            //Ajax要求upToken的Url,**强烈建议设置**(服务端供应)
      // uptoken: '', //若未指定uptoken_url,则必需指定 uptoken ,uptoken由其他顺序天生
      // unique_names: true, // 默许 false,key为文件名。若开启该选项,SDK为自动天生上传胜利后的key(文件名)。
      // save_key: true,   // 默许 false。若在服务端天生uptoken的上传战略中指定了 `sava_key`,则开启,SDK会疏忽对key的处置惩罚
      domain: 'myUrl',   //bucket 域名,下载资本时用到,**必需**
      get_new_uptoken: false,            //设置上传文件的时刻是不是每次都从新猎取新的token
      container: 'container',                //上传地区DOM ID,默许是browser_button的父元素,
      max_file_size: '100mb',           //最大文件体积限定
      flash_swf_url: 'Moxie.swf',       //引入flash,相对路径
      max_retries: 3,                   //上传失利最大重试次数
      dragdrop: true,                   //开启可拖曳上传
      drop_element: 'container',        //拖曳上传地区元素的ID,拖曳文件或文件夹后可触发上传
      chunk_size: '4mb',                //分块上传时,每片的体积
      auto_start: true,                //挑选文件后自动上传,若封闭须要本身绑定事宜触发上传
      init: {
          'FilesAdded': function(up, files) {
              plupload.each(files, function(file) {
                  // 文件添加举行列后,处置惩罚相干的事变
                  console.log(file.name);
              });
          },
          'BeforeUpload': function(up, file) {
                 // 每一个文件上传前,处置惩罚相干的事变
          },
          'UploadProgress': function(up, file) {
                 // 每一个文件上传时,处置惩罚相干的事变
          },
          'FileUploaded': function(up, file, info) {
                 // 每一个文件上传胜利后,处置惩罚相干的事变
                 // 个中 info 是文件上传胜利后,服务端返回的json,情势如
                 // {
                 //    "hash": "Fh8xVqod2MQ1mocfI4S4KpRL6D98",
                 //    "key": "gogopher.jpg"
                 //  }
                 // 参考http://developer.qiniu.com/docs/v6/api/overview/up/response/simple-response.html

                 // var domain = up.getOption('domain');
                 // var res = parseJSON(info);
                 // var sourceLink = domain + res.key; 猎取上传胜利后的文件的Url
          },
          'Error': function(up, err, errTip) {
                 //上传失足时,处置惩罚相干的事变
          },
          'UploadComplete': function() {
                 //行列文件处置惩罚完毕后,处置惩罚相干的事变
          },
          'Key': function(up, file) {
                 // 若想在前端对每一个文件的key举行个性化处置惩罚,能够设置该函数
                 // 该设置必需要在 unique_names: false , save_key: false 时才见效
                 var key = "";
                 // do something with key here
                 return key
          }
      }
  });

  // domain 为七牛空间(bucket)对应的域名,挑选某个空间后能够看到
  // uploader 为一个plupload对象,继续了一切plupload的要领,参考http://plupload.com/docs

document.getElementById('pickfiles').onclick = function() {
  uploader.start();
};
    原文作者:ZhugeZhan
    原文地址: https://segmentfault.com/a/1190000008799185
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞