使用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中正则表达式的全局匹配模式分析
Apr 26 Javascript
15个款优秀的 jQuery 图片特效插件推荐
Nov 21 Javascript
PHP abstract与interface之间的区别
Nov 11 Javascript
js的Prototype属性解释及常用方法
May 08 Javascript
javascript动态设置样式style实例分析
May 13 Javascript
三种Node.js写文件的方式
Mar 08 Javascript
jQuery模拟Marquee实现无缝滚动效果完整实例
Sep 29 Javascript
vue树形结构获取键值的方法示例
Jun 21 Javascript
ES6对象操作实例详解
May 23 Javascript
vue项目中使用多选框的实例代码
Jul 22 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
Nov 06 Javascript
JavaScript实现筛选数组
Mar 02 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
上海牌131型七灯四波段四喇叭一级收音机
2021/03/02 无线电
php 中文和编码判断代码
2010/05/16 PHP
php将时间差转换为字符串提示
2011/09/07 PHP
php使用sql数据库 获取字段问题介绍
2013/08/12 PHP
php中通过DirectoryIterator删除整个目录的方法
2015/03/13 PHP
微信公众平台之快递查询功能用法实例
2015/04/14 PHP
[IE&amp;FireFox兼容]JS对select操作
2007/01/07 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
2012/12/11 Javascript
浅谈jQuery事件绑定原理
2015/01/02 Javascript
javascript实现百度地图鼠标滑动事件显示、隐藏
2015/04/02 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
2016/06/08 Javascript
JS快速实现移动端拼图游戏
2016/09/05 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
2016/12/11 Javascript
Nodejs之TCP服务端与客户端聊天程序详解
2017/07/07 NodeJs
phantomjs导出html到pdf的方法总结
2017/10/19 Javascript
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
WebGL three.js学习笔记之阴影与实现物体的动画效果
2019/04/25 Javascript
Vue如何获取数据列表展示
2019/12/11 Javascript
JS正则表达式验证端口范围(0-65535)
2020/01/06 Javascript
js和jquery判断数据类型的4种方法总结
2020/08/28 jQuery
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
Python 爬虫的工具列表大全
2016/01/31 Python
Python实现图片尺寸缩放脚本
2018/03/10 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
2020/11/28 Python
使用html5+css3来实现slider切换效果告别javascript+css
2013/01/08 HTML / CSS
英国领先的男士服装和时尚零售商:Burton
2017/01/09 全球购物
UGG英国官方网站:UGG UK
2018/02/08 全球购物
宿舍打麻将检讨书
2014/01/24 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
婚内房产协议书范本
2014/10/02 职场文书
2014年导购员工作总结
2014/11/18 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
化验室安全管理制度
2015/08/06 职场文书
2019消防宣传标语!
2019/07/10 职场文书
Python 流媒体播放器的实现(基于VLC)
2021/04/28 Python
修改MySQL的默认密码的四种小方法
2021/05/26 MySQL