使用Plupload实现直接上传附件至七牛云存储


Posted in Javascript onDecember 26, 2014

这个插件主要针对哪些用户?

1.空间小想做下载服务器的用户,既没有足够的带宽,又没有足够大的空间,我们这个怎么弄呢?将我们的网站做成中间层,然后用户上传到服务器其实就上传到了七牛云存储,下载也是等同于在七牛下载,即省了空间又省了带宽,解决了小空间不能做下载站的可能!

2.我本身服务器很好,但是有时候用户上传只有几K的速度往上走,这个不乏有ISP的限制成64KB,但是达不到就几K,这个真实存在的,我们也用这个做上传服务器,然后用软件定时下载到服务器,这个就是现在一个网站主现在做的

3.做一个个人的文档库,让别人都上传到我的云空间中

就如下图的实例

使用Plupload实现直接上传附件至七牛云存储

关于这个插件,JS中不得不说Plupload这个插件真的很强大,强大就有一个问题,复杂,什么叫复杂就是可定制化,自己动手丰衣足食,想要的功能你可以自己实现,如果只讲这个插件那就太费劲了,大家可以参考官方的API,我这里只是做一个七牛的demo,前边有uploadify的大家可以一起看看!

index.php

<?php

 require_once("./qiniu/io.php");

 require_once("./qiniu/rs.php");

 require_once("./qiniu/fop.php");

 $bucket = "空间名称";

 $accessKey = 'APIKEY';

 $secretKey = 'APIKEY';

 Qiniu_SetKeys($accessKey, $secretKey);

 $putPolicy = new Qiniu_RS_PutPolicy($bucket);

 $upToken = $putPolicy->Token(null);

?>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">

<head>

<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>

<title>Plupload for QINIU</title>

<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/themes/base/jquery-ui.css" type="text/css" />

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>

<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>

<link rel="stylesheet" href="./js/jquery.plupload.queue/css/jquery.plupload.queue.css" type="text/css" />

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

<script type="text/javascript" src="./js/jquery.ui.plupload/jquery.ui.plupload.js"></script>

<script type="text/javascript" src="./js/jquery.plupload.queue/jquery.plupload.queue.js"></script>

</head>

<body style="font: 13px Verdana; background: #eee; color: #333">

<h1>Plupload to QINIU Example</h1>

<div id="uploader">

    <p>Your browser doesn't have Flash, Silverlight or HTML5 support.</p>

</div>

<script type="text/javascript">

$(function() {

 $("#uploader").pluploadQueue({

  //设置类型

  runtimes : 'html5,flash,silverlight',

  //设置上传的url

  url : 'http://up.qiniu.com/',

  

  multipart: true,

  //设置post传给七牛的token

  multipart_params: {

   'token': '<?php echo $upToken; ?>', 

  },

  

  resize : {width : 800, height : 600, quality : 60},  // 设置大小

  //修改post字段为七牛的file

  file_data_name: 'file',

  //设置一些限制

  filters : {

   // 设置大小

   max_file_size : '10mb',

   // 允许上传的类型

   mime_types: [

    {title : "Image files", extensions : "png,jpeg"},

    {title : "RAR files", extensions : "rar,zip,tar.gz"}

   ]

  },

  // 设置Flash的路径

  flash_swf_url : './js/Moxie.swf',

  // 设置Silverlight的路径

  silverlight_xap_url : './js/Moxie.xap',

  //多文件上传 如果你是多文件上传可以把这里的注释去掉

  // preinit :{

  //  UploadFile : function(up,file){

    //          up.settings.multipart_params.key=file.name;

  //  }

  // },

 

 });

     var uploader = $('#uploader').pluploadQueue();  // 取得上传队列

           //绑定FIlesAdded这个方法 具体的好多方法大家可以看官方的API 单一文件上传的方法

           uploader.bind('FilesAdded',function(up,files){

             //获取文件名称 这个是单一的 如果多文件需要循环上传

               var filename = files[0].name;

               var filedata = filename.split(".");

               var type   = filedata[filedata.length-1];

               up.settings.multipart_params.key="<?php echo date('Ymd-His') . '-' . rand(10000,99999);?>"+"."+type;

             });

     if (uploader.files.length > 0) {  // 就是说如果上传队列中还有文件 

              uploader.start();  

          } else {  

              alert('你必须选择一个文件.');  

          }  

});

</script>

</body>

</html>

七牛的产品真的还是不错的,大家可以借鉴我前边的文章,有服务器备份的(LINUX)还有uploadify这个插件的,相对来说这个JS插件简单话,当然里边还有七牛的查询代码,如果大家有什么疑问尽管问我

Javascript 相关文章推荐
用jquery实现学校的校历(asp.net+jquery ui 1.72)
Jan 01 Javascript
基于jquery+thickbox仿校内登录注册框
Jun 07 Javascript
javascript获取元素CSS样式代码示例
Nov 28 Javascript
js鼠标滑过图片震动特效的方法
Feb 17 Javascript
jQuery基于图层模仿五星星评价功能的方法
May 07 Javascript
js如何改变文章的字体大小
Jan 08 Javascript
jQuery validate插件实现ajax验证重复的2种方法
Jan 22 Javascript
详解jQuery中的empty、remove和detach
Apr 11 Javascript
用js将long型数据转换成date型或datetime型的实例
Jul 03 Javascript
Vue slot用法(小结)
Oct 22 Javascript
Nuxt.js开启SSR渲染的教程详解
Nov 30 Javascript
微信小程序如何调用图片接口API并居中显示
Jun 29 Javascript
基于javascript的COOkie的操作实现只能点一次
Dec 26 #Javascript
jQuery中ajax的load()方法用法实例
Dec 26 #Javascript
jquery中checkbox全选失效的解决方法
Dec 26 #Javascript
jQuery中change事件用法实例
Dec 26 #Javascript
jQuery中mouseover事件用法实例
Dec 26 #Javascript
javascript实现禁止右键和F12查看源代码
Dec 26 #Javascript
Angularjs 基础入门
Dec 26 #Javascript
You might like
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
非常实用的php弹出错误警告函数扩展性强
2014/01/17 PHP
php中实现记住密码下次自动登录的例子
2014/11/06 PHP
PHP使用glob函数遍历目录或文件夹的方法
2014/12/16 PHP
PHP两种快速排序算法实例
2015/02/15 PHP
Thinkphp实现站点静态化的方法详解
2017/03/21 PHP
Yii框架数据库查询、增加、删除操作示例
2019/10/14 PHP
js获取变量
2006/08/24 Javascript
用htc组件制作windows选项卡
2007/01/13 Javascript
JavaScript 字符编码规则
2009/05/04 Javascript
jquery 1.4.2发布!主要是性能与API
2010/02/25 Javascript
javascript下对于事件、事件流、事件触发的顺序随便说说
2010/07/17 Javascript
js数组去重的常用方法总结
2014/01/24 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
JavaScript实现大数的运算
2014/11/24 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
深入理解JavaScript系列(31):设计模式之代理模式详解
2015/03/03 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
2016/03/18 Javascript
浅析创建javascript对象的方法
2016/05/13 Javascript
javascript类型系统_正则表达式RegExp类型详解
2016/06/24 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
浅谈Vue 性能优化之深挖数组
2018/12/11 Javascript
python为tornado添加recaptcha验证码功能
2014/02/26 Python
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
使用python为mysql实现restful接口
2018/01/05 Python
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
使用Python微信库itchat获得好友和群组已撤回的消息
2018/06/24 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
网上卖盒饭创业计划书范文
2014/02/07 职场文书
自我鉴定书
2014/03/24 职场文书
实习护士自荐信
2015/03/25 职场文书
2015年电信员工工作总结
2015/05/26 职场文书
董事长秘书工作总结
2015/08/14 职场文书