使用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之过滤元素操作小结
Nov 30 Javascript
浮动的div自适应居中显示的js代码
Dec 23 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
Jun 23 Javascript
javascript中caller和callee详解
Aug 10 Javascript
详解Javascript中prototype属性(推荐)
Sep 03 Javascript
bootstrap制作jsp页面(根据值让table显示选中)
Jan 05 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
Aug 27 Javascript
js获取元素下的第一级子元素的方法(推荐)
Mar 05 Javascript
Vue.js仿Metronic高级表格(一)静态设计
Apr 17 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
Feb 09 Javascript
Vue中使用 setTimeout() setInterval()函数的问题
Sep 13 Javascript
Vue 3自定义指令开发的相关总结
Jan 29 Vue.js
基于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
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
2007/03/15 PHP
PHP程序员编程注意事项
2008/04/10 PHP
PHP安装memcached扩展笔记
2015/05/28 PHP
摘自织梦CMS的HTTP文件下载类
2015/08/08 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
PHP+JS实现的实时搜索提示功能
2018/03/13 PHP
jquery.jstree 增加节点的双击事件代码
2010/07/27 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
2012/07/17 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
2020/03/30 Javascript
学习JavaScript设计模式之状态模式
2016/01/08 Javascript
JavaScript事件 &quot;事件对象&quot;的注意要点
2016/01/14 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
AngularJS 中的Promise --- $q服务详解
2016/09/14 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
jQuery Dom元素操作技巧
2018/02/04 jQuery
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
JS document form表单元素操作完整示例
2020/01/13 Javascript
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
Python创建系统目录的方法
2015/03/11 Python
Python编程实现蚁群算法详解
2017/11/13 Python
Python实现统计给定列表中指定数字出现次数的方法
2018/04/11 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
台湾前三大B2C购物网站:MOMO购物网
2017/04/27 全球购物
美国豪华时尚女性精品店:Kirna Zabête
2018/01/11 全球购物
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
自强之星事迹材料
2014/05/12 职场文书
委托证明模板
2014/09/16 职场文书
法定授权委托证明书
2014/09/27 职场文书
2014年世界艾滋病日宣传活动总结
2014/11/18 职场文书
工作自我推荐信范文
2015/03/25 职场文书
推广普通话宣传标语口号
2015/12/26 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
简单聊聊TypeScript只读修饰符
2022/04/06 Javascript