SDK:

http://developer.qiniu.com/code/v6/sdk/javascript.html#upload

上传

  • 在页面中引入 plupload,plupload.full.min.js(产品环境)或引入 plupload.dev.js 和 moxie.js(开发调试)

  • 在页面中引入 qiniu.min.js(生产环境)或 qiniu.js(开发调试)

  • 初始化 uploader (请确保在执行初始化时,页面已经引入 plupload):

    var uploader = Qiniu.uploader({
    runtimes: 'html5,flash,html4', // 上传模式,依次退化
    browse_button: 'pickfiles', // 上传选择的点选按钮,必需
    // 在初始化时,uptoken,uptoken_url,uptoken_func三个参数中必须有一个被设置
    // 切如果提供了多个,其优先级为uptoken > uptoken_url > uptoken_func
    // 其中uptoken是直接提供上传凭证,uptoken_url是提供了获取上传凭证的地址,如果需要定制获取uptoken的过程则可以设置uptoken_func
    // uptoken : '<Your upload token>', // uptoken是上传凭证,由其他程序生成
    // uptoken_url: '/uptoken', // Ajax请求uptoken的Url,强烈建议设置(服务端提供)
    // uptoken_func: function(file){ // 在需要获取uptoken时,该方法会被调用
    // // do something
    // return uptoken;
    // },
    get_new_uptoken: false, // 设置上传文件的时候是否每次都重新获取新的uptoken
    // downtoken_url: '/downtoken',
    // Ajax请求downToken的Url,私有空间时使用,JS-SDK将向该地址POST文件的key和domain,服务端返回的JSON必须包含url字段,url值为该文件的下载地址
    // unique_names: true, // 默认false,key为文件名。若开启该选项,JS-SDK会为每个文件自动生成key(文件名)
    // save_key: true, // 默认false。若在服务端生成uptoken的上传策略中指定了sava_key,则开启,SDK在前端将不对key进行任何处理
    domain: '<Your bucket domain>', // bucket域名,下载资源时用到,必需
    container: 'container', // 上传区域DOM ID,默认是browser_button的父元素
    max_file_size: '100mb', // 最大文件体积限制
    flash_swf_url: 'path/of/plupload/Moxie.swf', //引入flash,相对路径
    max_retries: 3, // 上传失败最大重试次数
    dragdrop: true, // 开启可拖曳上传
    drop_element: 'container', // 拖曳上传区域元素的ID,拖曳文件或文件夹后可触发上传
    chunk_size: '4mb', // 分块上传时,每块的体积
    auto_start: true, // 选择文件后自动上传,若关闭需要自己绑定事件触发上传
    //x_vars : {
    // 查看自定义变量
    // 'time' : function(up,file) {
    // var time = (new Date()).getTime();
    // do something with 'time'
    // return time;
    // },
    // 'size' : function(up,file) {
    // var size = file.size;
    // do something with 'size'
    // return size;
    // }
    //},
    init: {
    'FilesAdded': function(up, files) {
    plupload.each(files, function(file) {
    // 文件添加进队列后,处理相关的事情
    });
    },
    'BeforeUpload': function(up, file) {
    // 每个文件上传前,处理相关的事情
    },
    'UploadProgress': function(up, file) {
    // 每个文件上传时,处理相关的事情
    },
    'FileUploaded': function(up, file, info) {
    // 每个文件上传成功后,处理相关的事情
    // 其中info是文件上传成功后,服务端返回的json,形式如:
    // {
    // "hash": "Fh8xVqod2MQ1mocfI4S4KpRL6D98",
    // "key": "gogopher.jpg"
    // }
    // 查看简单反馈
    // 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为七牛空间对应的域名,选择某个空间后,可通过 空间设置->基本设置->域名设置 查看获取 // uploader为一个plupload对象,继承了所有plupload的方法
  • 如果一个页面中有多个上传实例,可以按如下操作:

    var option1 = {
    key : val ,
    ……
    };
    var uploader = Qiniu.uploader(option1); var Qiniu2 = new QiniuJsSDK();
    var option2 = {
    key : val ,
    ……
    };
    var uploader2 = Qiniu2.uploader(option2);

***七牛跨域上传图片JS SDK的更多相关文章

  1. ueditor富文本编辑器跨域上传图片解决办法

    在使用百度富文本编辑器上传图片的过程中,如果是有一台单独的图片服务器就需要将上传的图片放到图片服务器,比如在a.com的编辑器中上传图片,图片要保存到img.com,这就涉及到跨域上传图片,而在ued ...

  2. 【js跨域】js实现跨域访问的几种方式

    这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...

  3. 谷歌、火狐浏览器下实现JS跨域iframe高度自适应的完美解决方法,跨域调用JS不再是难题!

    谷歌.火狐浏览器下实现JS跨域iframe高度自适应的解决方法 导读:今天开发的时候遇到个iframe自适应高度的问题,相信大家对这个不陌生,但是一般我们都是在同一个项目使用iframe嵌套页面,这个 ...

  4. 项目二(业务GO)——跨域上传图片(请求接口)

    之前,就听过“跨域上传”图片的问题,只是疏于研究,也就一再搁置,直至今天再次遇见这个不能避免的“坑”,才不得不思考一下,怎么“跨域上传”图片或者文件? 问题来源: 何为“跨域”? ——就是给你一个接口 ...

  5. kindeditor4跨域上传图片解决

    项目中正在使用kindeditor, 版本号4.1.10 非常多公司的图片会走CDN,须要单独的一台图片上传服务如:(upload.268xue.com) kindeditor上传图片的简单内部流程: ...

  6. php 之跨域上传图片

    因为要将所有上传的图片上传到一台独立的图片服务器上面,js上传时存在跨域问题,网上找到这种,通过php curl方式,将图片重新发送到另外一台服务器上保存,并返回图片路径!这种方式存在一定问题:1,上 ...

  7. cookie跨域和js跨域问题

    js跨域:主机名,协议,端口号只要有任何一个不同,就不能成立

  8. django —— KindEditor - 跨域上传图片

    #跨域上传方法 def frontupload(request): if request.method == 'POST': item = {} file = request.FILES.get('i ...

  9. 从零开始学 Web 之 Ajax(七)跨域

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

随机推荐

  1. 3437: 小P的牧场

    3437: 小P的牧场 思路 斜率优化. dp[i]表示到第i个点(第i个点按控制台)的最小代价. 代码 #include<cstdio> #include<iostream> ...

  2. TopCoder SRM 710 Div2 Hard MinMaxMax Floyd最短路变形

    题意: 有一个无向连通图,没有重边没有自环,并给出顶点的权值和边的权值 定义一条路径\(difficulty\)值为该路径上最大的点权乘上最大的边权 定义函数\(d(i,j)\)为\(i,j\)之间的 ...

  3. javascript md5 二次加密 和 java md5 二次加密结果不同

    最近研究httpclient post 时遇到了一个问题,很费解. js  md5(str) 和 java md5(str),第一次md5 加密结果一样,(当时忽略了大小写问题,java 大写,js小 ...

  4. 【Training versus Testing】林轩田机器学习基石

    接着上一讲留下的关子,机器学习是否可行与假设集合H的数量M的关系. 机器学习是否可行的两个关键点: 1. Ein(g)是否足够小(在训练集上的表现是否出色) 2. Eout(g)是否与Ein(g)足够 ...

  5. java中多态的概念

    概念: 简答来说,多态(Polymorphism)是具有表现多种形态的能力的特征.    更专业的说法是:同一个实现接口,使用不同的实例而执行不同的操作. 好处: 通过多态可以减少类中代码量,可以提高 ...

  6. 一个关于pynoi游戏的C语言编程

    "去吧,秦,好好享受这个夜晚,我给你准备了一份礼物,希望你能喜欢."小布莱克眨着眼睛笑道,狡猾的像一头小狐狸.

  7. maven中scope标签作用

    scope 是用来限制 dependency 的作用范围的,影响 maven 项目在各个生命周期时导入的 package 的状态,主要管理依赖的部署. scope 的作用范围: (1)compile: ...

  8. python之while/for循环

    一.while循环 (一)循环语句 while 后面接判断语句,在返回结果时有以下几种语句: 1.break 仅适用于循环语句,意思是结束最近的循环 2.continue 仅适用于循环语句,意思是跳到 ...

  9. CPU指令集不同导致的core分析

    最近程序需要支持CGSL系统运行,测试中发现相同操作系统的两台机器,编译机运行正常,测试机coredump.core信息汇总如下,可以看出是由于测试机不支持编译后的指令导致的问题: Program t ...

  10. SpringMVC<一> 基本结构与配置

    刚刚踏入SpringMVC的学习,有一定Strust2的使用经验,边看书看博客,边总结,如有不对的地方还希望各位大佬多多指正. Spring 响应过程与结构 (1)用户在客户端发送一个HTTP请求,W ...