使用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查看html源文件
Nov 08 Javascript
异步加载script的代码
Jan 12 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
Jun 17 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
Aug 26 Javascript
AngularJS ng-change 指令的详解及简单实例
Jul 30 Javascript
js获取元素的标签名实现方法
Oct 08 Javascript
Bootstrap轮播图学习使用
Feb 10 Javascript
微信小程序中button组件的边框设置的实例详解
Sep 27 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
Sep 29 Javascript
JQueryDOM之样式操作
Mar 27 jQuery
微信小程序picker组件两列关联使用方式
Oct 27 Javascript
AJAX检测用户名是否存在的方法
Mar 24 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
在PHP3中实现SESSION的功能(二)
2006/10/09 PHP
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
ThinkPHP中的常用查询语言汇总
2014/08/22 PHP
解读PHP中的垃圾回收机制
2015/08/10 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
父子窗体间传递JSON格式的数据的代码
2010/12/25 Javascript
JS分割字符串并放入数组的函数
2011/07/04 Javascript
jQuery EasyUI API 中文文档 - TreeGrid 树表格使用介绍
2011/11/21 Javascript
浅谈javascript中的instanceof和typeof
2015/02/27 Javascript
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
AngularJS基础 ng-focus 指令简单示例
2016/08/01 Javascript
理解 javascript 中的函数表达式与函数声明
2017/07/07 Javascript
微信小程序实现获取小程序码和二维码java接口开发
2019/03/29 Javascript
js+canvas实现简单扫雷小游戏
2021/01/22 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
2020/04/16 Javascript
国内常用的js类库大全(CDN公共库)
2020/06/24 Javascript
vue中destroyed方法的使用说明
2020/07/21 Javascript
JavaScript实现弹出窗口效果
2020/12/09 Javascript
浅析Python编写函数装饰器
2016/03/18 Python
Python3中exp()函数用法分析
2019/02/19 Python
Python 使用 docopt 解析json参数文件过程讲解
2019/08/13 Python
Python如何将将模块分割成多个文件
2020/08/04 Python
实例讲解HTML5的meta标签的一些应用
2015/12/08 HTML / CSS
阿迪达斯墨西哥官方网站:adidas墨西哥
2017/11/03 全球购物
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
全球最大化妆品零售网站:SkinStore
2020/10/24 全球购物
xml有哪些解析技术?区别是什么
2016/04/26 面试题
职称自我鉴定
2013/10/15 职场文书
营业经理岗位职责
2013/11/10 职场文书
金融与证券专业求职信
2014/06/22 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
交警失职检讨书
2015/01/26 职场文书
nginx常用命令放入shell脚本详解
2021/03/31 Servers
Python批量将csv文件转化成xml文件的实例
2021/05/10 Python