使用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 相关文章推荐
JavaScript 动态创建VML的方法
Oct 14 Javascript
javascript中callee与caller的用法和应用场景
Dec 08 Javascript
关于javascript event flow 的一个bug详解
Sep 17 Javascript
实例详解jQuery表单验证插件validate
Jan 18 Javascript
JavaScript基础知识点归纳(推荐)
Jul 09 Javascript
jQuery 选择符详细介绍及整理
Dec 02 Javascript
原生JS实现自定义滚动条效果
Oct 27 Javascript
用React实现一个完整的TodoList的示例代码
Oct 30 Javascript
微信小程序switch开关选择器使用详解
Jan 31 Javascript
Node.js爬取豆瓣数据实例分析
Mar 05 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
Oct 17 Javascript
js实现浏览器打印功能的示例代码
Jul 15 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
最小化数据传输――在客户端存储数据
2006/10/09 PHP
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
使用Yii2实现主从数据库设置
2016/11/20 PHP
JS 控件事件小结
2012/10/31 Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
2013/09/29 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
针对初学者的jQuery入门指南
2015/08/15 Javascript
JavaScript实现鼠标点击导航栏变色特效
2017/02/08 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
利用prop-types第三方库对组件的props中的变量进行类型检测
2017/05/02 Javascript
layui弹出层效果实现代码
2017/05/19 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
2017/07/13 Javascript
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
Node.js利用断言模块assert进行单元测试的方法
2017/09/28 Javascript
Javascript网页抢红包外挂实现分享
2018/01/11 Javascript
js回文数的4种判断方法示例
2019/06/04 Javascript
使用layer.msg 时间设置不起作用的解决方法
2019/09/12 Javascript
js实现随机div颜色位置 类似满天星效果
2019/10/24 Javascript
JS实现页面侧边栏效果探究
2021/01/08 Javascript
[40:50]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第四场
2014/05/24 DOTA
Python实现批量修改文件名实例
2015/07/08 Python
对python的unittest架构公共参数token提取方法详解
2018/12/17 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
python实现简单日期工具类
2019/04/24 Python
Python Collatz序列实现过程解析
2019/10/12 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
Python之京东商品秒杀的实现示例
2021/01/06 Python
英国男士时尚网站:Dandy Fellow
2018/02/09 全球购物
业务员薪酬管理制度
2014/01/15 职场文书
普通话演讲稿
2014/09/03 职场文书
公安交警中队队长个人对照检查材料思想汇报
2014/10/05 职场文书
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python
Redis调用Lua脚本及使用场景快速掌握
2022/03/16 Redis