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. oracle(sql)基础篇系列(二)——多表连接查询、子查询、视图

    多表连接查询 内连接(inner join) 目的:将多张表中能通过链接谓词或者链接运算符连接起来的数据查询出来. 等值连接(join...on(...=...)) --选出雇员的名字和雇员所在的部门 ...

  2. laravel5.5用户认证源码分析

    目录 1. 生成相关文件和配置 2. 分析路由文件 3. 以登陆开始为例,分析auth到底是怎么工作的 3.1 分析登录文件 3.2 分析门面Auth. 1. 生成相关文件和配置 快速生成命令 php ...

  3. erlang节点局域网通信

    节点1: F:\WorkSpace\Server\src>erl -name hw@192.168.10.142 -setcookie 4213 consulting .erlang in &q ...

  4. 剑指Offer - 九度1524 - 复杂链表的复制

    剑指Offer - 九度1524 - 复杂链表的复制2014-02-07 01:30 题目描述: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点 ...

  5. Kotlin中的“忍者”函数 —— 理解泛型的能力(KAD 12)

    作者:Antonio Leiva 时间:Feb 8, 2017 原文链接:https://antonioleiva.com/generic-functions-kotlin/ Kotlin的一些特性组 ...

  6. 4.实现简单的shell sed替换功能

    # -*- coding:utf-8 -*- # Author: JACK ZHAO # 程序1: 实现简单的shell sed替换功能 import sys #判断参数个数 if len(sys.a ...

  7. Linux认知之旅【01 与Linux第一次亲密接触】!

    一.搜索LINUX,了解它的前世今生! linux很厉害,应用在很多方面,我知道有超算.IOT.树莓派. 而且好多开发人员都在用这个系统.linux作为服务器使用,常年不用重启,不宕机,很少受病毒影响 ...

  8. SDK支付流程

    1.普通支付流程 2.代理流程 易接.U8SDK

  9. 以太访solidity常用的函数有哪些

    以太坊:什么是ERC20标准? 不以规矩,不能成方圆 许多人应该都听过 代码即法律(Code Is Law),因为程序写完了,无论执行多少次都会得到同样的结果,除非有外界因素的干扰.在多人协作的过程中 ...

  10. PHP如何实现第三方分享

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...