多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
本教程用于七牛云上传SDK:公开空间上传 >[info] 使用语言为 **Python** 做后端,**Javascript** 做前端 Python后端作用: 向前端返回上传凭证。 Javascript前端作用: 实现文件上传,支持批量上传,进度实时更新,返回外链等 Python环境: 3.5.2 64bit **Python后端步骤:** 1. 安装qiniu Python SDK,官网说适用于3.4以下版本,但亲测3.5.2版本依然适用 ~~~ pip install qiniu ~~~ 2. 向前端返回上传凭证,比如使用Django框架 2.1 在urls.py中配置url模式 ~~~ url( r'^get_token$', views.get_token, name="get_token"), ~~~ 2.2 在views.py中定义view,官网文档规定:返回值必须是如下的json格式 ~~~ { 'uptoken': token_string } ~~~ 以下是代码 ~~~ from qiniu import Auth @csrf_exempt def get_qiniu_token( request ): q = Auth( access_key, secret_key )#在七牛个人页面中可以查到 bucket_name = "test" token = q.upload_token( bucket_name )#return a string represent token return JsonResponse( {"uptoken": token} ) ~~~ 以上便是 Python后端的全部代码 **JavaScript前端步骤:** 1. 引入Plupload,和qiniu Javascript SDK ~~~ <script src="http://cdn.bootcss.com/plupload/2.1.1/plupload.full.min.js"></script> <script src="http://cdn.bootcss.com/qiniu-js/1.0.17/qiniu.min.js"></script> ~~~ 2. 在页面上定义一个dom,用于触发上传动作,后续Plupload会根据id对其初始化 ~~~ <label id="browseFile" class="btn btn-warning">Browse Image</label> ~~~ 3. 在页面的Javascript中初始化七牛定制的Plupload,Plupload详细配置,可以到Plupload官网查看文档 ~~~ var uploader = Qiniu.uploader({ browse_button: "browseFile", uptoken_url: "/get_token", get_new_uptoken: false, unique_names: true, domain: your_qiniu_domain_name, max_file_size: "5mb", max_retries: 3, auto_start: true, multi_selection: true, /*image resize on client side*/ resize: { width: 320, }, init: { "UploadProgress": function(up, file)//上传进度实时更新 { progressBar.style.width = up.total.percent + '%'; speed.innerHTML = (up.total.bytesPerSec / 1024).toFixed(2) + "KB/s"; }, "FileUploaded": function( up, file, info )//单个文件上传完成事件,imageLink即为图片外链 { var domain = up.getOption( "domain" ); var response = JSON.parse( info ); var imageLink = domain + response.key; allLink += response.key + ";"; createNewImage( imageLink ); }, "UploadComplete": function()//队列内所有文件上传完成事件 { inputImageLink.value = allLink; }, } }); ~~~