使用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 相关文章推荐
用JS实现的一个include函数
Jul 21 Javascript
JavaScript修改css样式style
Apr 15 Javascript
谈谈Jquery中的children find 的区别有哪些
Oct 19 Javascript
解析微信JS-SDK配置授权,实现分享接口
Dec 09 Javascript
canvas学习之API整理笔记(一)
Dec 29 Javascript
使用JQ完成表格隔行换色的简单实例
Aug 25 Javascript
Node.js应用设置安全的沙箱环境
Apr 23 Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
Jul 20 Javascript
vue的三种图片引入方式代码实例
Nov 19 Javascript
JS FormData对象使用方法实例详解
Feb 12 Javascript
Vue.js原理分析之nextTick实现详解
Sep 07 Javascript
Element-UI 使用el-row 分栏布局的教程
Oct 26 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的大小写敏感问题整理
2011/12/29 PHP
php实现检查文章是否被百度收录
2015/01/27 PHP
php与Mysql的一些简单的操作
2015/02/26 PHP
smarty模板引擎之内建函数用法
2015/03/30 PHP
PHP+JS实现大规模数据提交的方法
2015/07/02 PHP
php之static静态属性与静态方法实例分析
2015/07/30 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
JQuery 简便实现页面元素数据验证功能
2007/03/24 Javascript
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
2007/04/20 Javascript
Jquery ui css framework
2010/06/28 Javascript
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
ExtJS中文乱码之GBK格式编码解决方案及代码
2013/01/20 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
AngularJS入门教程之控制器详解
2016/07/27 Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
2017/02/27 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
vue2里面ref的具体使用方法
2017/10/27 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
2019/04/26 Javascript
Vue中nprogress页面加载进度条的方法实现
2020/11/13 Javascript
[01:09]模型精美,特效酷炫!TI9不朽宝藏Ⅰ鉴赏
2019/05/10 DOTA
使用Python从有道词典网页获取单词翻译
2016/07/03 Python
python数据清洗系列之字符串处理详解
2017/02/12 Python
Python多线程爬虫实战_爬取糗事百科段子的实例
2017/12/15 Python
Python日期时间对象转换为字符串的实例
2018/06/22 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
2019/03/29 Python
python定时检测无响应进程并重启的实例代码
2019/04/22 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
HTML5的postMessage的使用手册
2018/12/19 HTML / CSS
印尼值得信赖的在线交易网站:Bukalapak
2019/03/11 全球购物
加拿大大码女装购物网站:Penningtons
2020/12/26 全球购物
安全生产一岗双责责任书
2014/07/28 职场文书
乡镇党委书记第三阶段个人整改措施
2014/09/16 职场文书
办公室卫生管理制度
2015/08/04 职场文书
解决Redis启动警告问题
2022/02/24 Redis