首先需要设计上传按钮,格式如下:注意container,domain,upload_url,pickfiles必须按照下面的格式来:
<div class="orange" id="container">
<input type="hidden" id="domain" value="http://xxxx.bkt.clouddn.com/"></input><input type="hidden" id="uptoken_url" value="http://xxx.xxx.com/index.php/tjsc_api/get_qiniu_upload_token"></input>
<div style="position:relative;">
<button class="btn btn-default btn-lg " id="pickfiles" href="#" style="position: relative; z-index: 1;">
<i class="glyphicon glyphicon-plus"></i>
<span>选择文件</span>
</button>
<div id="html5_1avjhjor91sp11t6d1hr66srtbm3_container" class="moxie-shim moxie-shim-html5" style="position: absolute; top: 0px; left: 0px; width: 145px; height: 46px; overflow: hidden; z-index: 0;"><input id="html5_1avjhjor91sp11t6d1hr66srtbm3" type="file" style="font-size: 999px; opacity: 0; position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;" multiple="" accept=""></div>
</div>
</div>
然后:从七牛云的官网下载auth.php,里面包含了uploadtoken的生成接口了,直接调用就行了;
然后前端调用:
$(function() {
var uploader = Qiniu.uploader({
runtimes: 'html5,flash,html4', //上传模式,依次退化
browse_button: 'pickfiles', //上传选择的点选按钮,**必需**
//uptoken : $('#uptoken_url').val(),
uptoken_url: $('#uptoken_url').val(), //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: $('#domain').val(), //bucket 域名,下载资源时用到,**必需**
get_new_uptoken: false, //设置上传文件的时候是否每次都重新获取新的token
container: 'container', //上传区域DOM ID,默认是browser_button的父元素,
max_file_size: '100mb', //最大文件体积限制
flash_swf_url: 'application/views/admin_tjsc/js/Moxie.swf', //引入flash,相对路径
max_retries: 3, //上传失败最大重试次数
dragdrop: false, //开启可拖曳上传
drop_element: 'container', //拖曳上传区域元素的ID,拖曳文件或文件夹后可触发上传
chunk_size: '4mb', //分块上传时,每片的体积
auto_start: true, //选择文件后自动上传,若关闭需要自己绑定事件触发上传
init: {
'FilesAdded': function(up, files) {
alert('add');
plupload.each(files, function(file) {
// 文件添加进队列后,处理相关的事情
});
},
'BeforeUpload': function(up, file) {
alert('upload');
// 每个文件上传前,处理相关的事情
},
'UploadProgress': function(up, file) {
alert('progress');
// 每个文件上传时,处理相关的事情
},
'FileUploaded': function(up, file, info) {
alert(JSON.stringify(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) {
alert('error');
//上传出错时,处理相关的事情
},
'UploadComplete': function() {
alert('complete');
//队列文件处理完毕后,处理相关的事情
}
// },
// 'Key': function(up, file) {
// // 若想在前端对每个文件的key进行个性化处理,可以配置该函数
// // 该配置必须要在 unique_names: false , save_key: false 时才生效
// alet('key');
// var key = "";
// // do something with key here
// return key;
// }
}
});
})
就可以了。