JS上传组件FileUpload自定义模板的使用方法


Posted in Javascript onMay 10, 2016

FileUpload 是国外一个纯javascript 写的大文件上传组件,该组件支持分片上传,断点续传,多文件等功能。
下面就为大家分享FileUpload上传组件自定义模板(FineUploaderBasic)的使用方法:

以下是配置代码:

前端配置:

<!--定义按钮-->
<div id="basic_uploader_fine"><i class="icon-upload icon-white"></i>选择文件</div>
<div id="triggerUpload">点击上传</div>
<!--显示信息-->
<div id="messages"></div>
<div id="cancelUpload" class="buttons">取消</div>
<div id="cancelAll" class="buttons">取消全部</div>
<div id="pauseUpload" class="buttons">暂停上传</div>
<div id="continueUpload" class="buttons">继续上传</div>
<script>
 $(document).ready(function() {
 $fub = $('#basic_uploader_fine');
 $messages = $('#messages');

 var uploader = new qq.FineUploaderBasic({
  debug: true,  // 开启调试模式
  multiple: true, // 多文件上传
  button: $fub[0], //上传按钮
  autoUpload: false, //不自动上传则调用uploadStoredFiless方法 手动上传
  // 验证上传文件
  validation: { 
   allowedExtensions: ['jpeg', 'jpg', 'png', 'zip' , 'rar'],
  }, 
  // 远程请求地址(相对或者绝对地址)
  request: {
   endpoint: 'server/endpoint.php'
  },
  retry: {
   enableAuto: false // defaults to false 自动重试
  }, 
  chunking: {
   enabled: true,
   partSize: 500, // 分组大小,默认为 2M
   concurrent: {
    enabled: true // 开启并发分组上传,默认并发3个
   },
   success: {
    endpoint: "server/endpoint.php?done" // 分组上传完成后处理
   }
  },
  //回调函数
  callbacks: {
  //文件开始上传
  onSubmit: function(id, fileName) {
   $messages.append('<div id="file-' + id + '" class="alert" style="margin: 20px 0 0">'+fileName+'</div>');
  },
  onUpload: function(id, fileName) {
   $('#file-' + id).addClass('alert-info')
       .html('<img src="client/loading.gif" alt="Initializing. Please hold."> ' +
        'Initializing ' +
        '“' + fileName + '”');
  },
  //进度条
  onProgress: function(id, fileName, loaded, total) {
   if (loaded < total) {
   progress = Math.round(loaded / total * 100) + '% of ' + Math.round(total / 1024) + ' kB';
   $('#file-' + id).removeClass('alert-info')
       .html('<img src="http://img.zcool.cn/community/01ff2756629d096ac725b2c8e95102.gif" width="50px" height="50px;" alt="In progress. Please hold."> ' +
         '上传文件中......' + progress);
   } else {
   $('#file-' + id).addClass('alert-info')
       .html('<img src="http://img.zcool.cn/community/01ff2756629d096ac725b2c8e95102.gif" width="50px" height="50px;" alt="Saving. Please hold."> ' +
         '上传文件中...... ');
   }
  },
  //上传完成后
  onComplete: function(id, fileName, responseJSON) {
   if (responseJSON.success) {
   var img = responseJSON['target']
   $('#file-' + id).removeClass('alert-info')
       .addClass('alert-success')
       .html('<i class="icon-ok"></i> ' +
         '上传成功! ' +
         '“' + fileName + '”'
        );
   } else {
   $('#file-' + id).removeClass('alert-info')
       .addClass('alert-error')
       .html('<i class="icon-exclamation-sign"></i> ' +
         'Error with ' +
         '“' + fileName + '”: ' +
         responseJSON.error);
   }
  },
  onError: function(id, name, reason, maybeXhrOrXdr) {
   console.log(id + '_' + name + '_' + reason);
  },  
  }  
 });

 //手动触发上传上传
  $('#triggerUpload').click(function() {
  uploader.uploadStoredFiles();
 });
 //取消某一个上传
  $('#cancelUpload').click(function() {
  uploader.cancel(0);
 });
 //取消所有未上传的文件
  $('#cancelAll').click(function() {
   //单个文件上传没有作用 因为已经在上传的不能使用这个cancelAll取消上传
   uploader.cancelAll();
 });
 //暂停上传某个文件
 $('#pauseUpload').click(function() {
   uploader.pauseUpload(0);
 });
 // 继续上传
 $('#continueUpload').click(function() {
   uploader.continueUpload(0);
 });
});
</script>

php代码:

//handler.php文件官网上下
require_once "handler.php";
$uploader = new UploadHandler();
// 文件类型限制
$uploader->allowedExtensions = array(); 
// 文件大小限制
$uploader->sizeLimit = null;
// 上传文件框
$uploader->inputName = "qqfile";
// 定义分组文件存放位置
$uploader->chunksFolder = "chunks";
$method = $_SERVER["REQUEST_METHOD"];

//上传目的文件夹(由于原来的文件存放规则不符合我们的需求所以修改了handler.php的代码添加了个文件夹生成规则【你也可以自定义】)
$uploadDirectory = $uploader->getPathName('member_avatar');
if ($method == "POST") {
 header("Content-Type: text/plain");

 // 分组上传完成后对分组进行合并
 if (isset($_GET["done"])) {
  $result = $uploader->combineChunks($uploadDirectory); // 合并分组文件

 } else {
  //开始上传文件
  $result = $uploader->handleUpload($uploadDirectory);
  // 获取上传的名称
  $result["uploadName"] = $uploader->getUploadName();

 }
 echo json_encode($result);
}
//删除文件处理
else if ($method == "DELETE") {
 $result = $uploader->handleDelete($uploadDirectory);
 echo json_encode($result);
}
else {
 header("HTTP/1.0 405 Method Not Allowed");
}

以上是一个简单的自定义模板的配置,希望对大家的学习有所帮助。

Javascript 相关文章推荐
JavaScript中使用Substring删除字符串最后一个字符
Nov 03 Javascript
Knockout数组(observable)使用详解示例
Nov 15 Javascript
JS+CSS实现Li列表隔行换色效果的方法
Feb 16 Javascript
详谈javascript中DOM的基本属性
Feb 26 Javascript
jQuery EasyUi实战教程之布局篇
Jan 26 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
Dec 02 Javascript
JS实现改变HTML上文字颜色和内容的方法
Dec 30 Javascript
jQuery窗口拖动功能的实现代码
Feb 04 Javascript
基于vue2.x的电商图片放大镜插件的使用
Jan 22 Javascript
Vue cli+mui 区域滚动的实例代码
Jan 25 Javascript
微信小程序云开发修改云数据库中的数据方法
May 18 Javascript
编写一个javascript元循环求值器的方法
Apr 14 Javascript
使用jQuery处理AJAX请求的基础学习教程
May 10 #Javascript
javascript关于继承解析
May 10 #Javascript
JavaScript继承学习笔记【新手必看】
May 10 #Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
May 10 #Javascript
深入剖析JavaScript:Object类型
May 10 #Javascript
JavaScript的React Web库的理念剖析及基础上手指南
May 10 #Javascript
快速解决Canvas.toDataURL 图片跨域的问题
May 10 #Javascript
You might like
肝肠寸断了解下!盘点史上最伤心的十大动漫
2020/03/04 日漫
解析dedecms空间迁移步骤详解
2013/05/15 PHP
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
PHP答题类应用接口实例
2015/02/09 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
thinkphp分页实现效果
2016/10/13 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
静态的动态续篇之来点XML
2006/12/23 Javascript
javascript Array.prototype.slice使用说明
2010/10/11 Javascript
JS继承--原型链继承和类式继承
2013/04/08 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
2014/02/12 Javascript
jQuery队列操作方法实例
2014/06/11 Javascript
js实现卡片式项目管理界面UI设计效果
2015/12/08 Javascript
理解JavaScript事件对象
2016/01/25 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
获取select的value、text值的简单示例(jquery与javascript)
2016/12/07 Javascript
Angular实现购物车计算示例代码
2017/02/21 Javascript
weui框架实现上传、预览和删除图片功能代码
2017/08/24 Javascript
node.js读取Excel数据(下载图片)的方法示例
2018/08/02 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
Python中使用装饰器和元编程实现结构体类实例
2015/01/28 Python
Python装饰器的函数式编程详解
2015/02/27 Python
Python实现mysql数据库更新表数据接口的功能
2017/11/19 Python
Python中生成器和迭代器的区别详解
2018/02/10 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
解决Python pandas df 写入excel 出现的问题
2018/07/04 Python
Python集中化管理平台Ansible介绍与YAML简介
2019/06/12 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
基于python框架Scrapy爬取自己的博客内容过程详解
2019/08/05 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
css3实现小箭头各种图形效果
2020/07/08 HTML / CSS
美工的岗位职责
2013/11/14 职场文书
社区关爱留守儿童活动方案
2014/08/22 职场文书
党员国庆节演讲稿范文2014
2014/09/21 职场文书
校运会加油稿大全
2015/07/22 职场文书
PostgreSQL聚合函数介绍以及分组和排序
2022/04/12 PostgreSQL