使用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 相关文章推荐
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
Feb 18 Javascript
IE6下JS动态设置图片src地址问题
Jan 08 Javascript
Javascript学习笔记8 用JSON做原型
Jan 11 Javascript
JavaScript Scoping and Hoisting 翻译
Jul 03 Javascript
jQuery的live()方法对hover事件的处理示例
Feb 27 Javascript
javascript中的Base64、UTF8编码与解码详解
Mar 18 Javascript
详细解密jsonp跨域请求
Apr 15 Javascript
纯javascript实现自动发送邮件
Oct 21 Javascript
通过jquery实现页面的动画效果(实例代码)
Sep 18 Javascript
微信小程序 页面跳转如何实现传值
Apr 05 Javascript
JavaScript模拟实现封装的三种方式及写法区别
Oct 27 Javascript
Vue如何将页面导出成PDF文件
Aug 17 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
PHP的SQL注入过程分析
2012/01/06 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
非常经典的PHP文件上传类分享
2016/05/15 PHP
zend framework重定向方法小结
2016/05/28 PHP
AES加解密在php接口请求过程中的应用示例
2016/10/26 PHP
Yii2第三方类库插件Imagine的安装和使用
2017/07/06 PHP
JQuery Tips(4) 一些关于提高JQuery性能的Tips
2009/12/19 Javascript
11款新鲜的jQuery插件[附所有demo下载]
2011/01/24 Javascript
Javascript开发之三数组对象实例介绍
2012/11/12 Javascript
JAVASCRIPT函数作用域和提前声明 分享
2013/08/22 Javascript
js编码、解码函数介绍及其使用示例
2013/09/05 Javascript
解决jquery中美元符号命名冲突问题
2014/01/08 Javascript
JS数组的遍历方式for循环与for...in
2014/07/31 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
form+iframe解决跨域上传文件的方法
2016/11/18 Javascript
原生js实现瀑布流布局
2017/03/08 Javascript
JS面向对象编程实现的拖拽功能案例详解
2020/03/03 Javascript
[03:48]大碗DOTA
2019/07/25 DOTA
python实现自动登录人人网并采集信息的方法
2015/06/28 Python
Python正则表达式教程之三:贪婪/非贪婪特性
2017/03/02 Python
python中logging库的使用总结
2017/10/18 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
2018/01/23 Python
Selenium chrome配置代理Python版的方法
2018/11/29 Python
Python lxml解析HTML并用xpath获取元素的方法
2019/01/02 Python
Python开发入门——迭代的基本使用
2020/09/03 Python
德国健康生活方式网上商店:Landkaufhaus Mayer
2019/03/12 全球购物
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
2014酒店客房部工作总结
2014/12/16 职场文书
2014普法依法治理工作总结
2014/12/18 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书
关于Javascript闭包与应用的详解
2021/04/22 Javascript
关于nginx 实现jira反向代理的问题
2021/09/25 Servers
讲解MySQL增删改操作
2022/05/06 MySQL