基于jQuery的Web上传插件Uploadify使用示例


Posted in Javascript onMay 19, 2016

Uploadify是一款功能强大,高度可定制的文件上传插件,实现的效果非常不错,带进度显示。在最简单的方式下,Uploadify使用很少的代码就可以运行起来。
Uploadify官方下载地址:http://www.uploadify.com/download/

测试例子
以下是一个使用的简单例子:
这里我们采用了Uploadify包中自带的php测试脚本作为上传的处理,所以这里安装了wamp作为php的测试环境,在php的网站根目录中,解压上面下载好的Uploadify文件,并创建一个文件上传保存的目录,这里我们在Uploadify的解压目录中创建到了uploads作为文件保存目录。

创建uploadify_test.php文件,添加如下内容:

<html>
<head>
  <link href="uploadify-v2.1.4/uploadify.css" rel="stylesheet" type="text/css" /> 
  <script type="text/javascript" src="uploadify-v2.1.4/jquery-1.4.2.min.js" ></script> 
  <script type="text/javascript" src="uploadify-v2.1.4/swfobject.js" ></script> 
  <script type="text/javascript" src="uploadify-v2.1.4/jquery.uploadify.v2.1.4.min.js" ></script> 

  <style type="text/css">
    #custom-demo .uploadifyQueueItem {
     background-color: #FFFFFF;
     border: none;
     border-bottom: 1px solid #E5E5E5;
     font: 11px Verdana, Geneva, sans-serif;
     height: 50px;
     margin-top: 0;
     padding: 10px;
     width: 350px;
    }
    #custom-demo .uploadifyError {
     background-color: #FDE5DD !important;
     border: none !important;
     border-bottom: 1px solid #FBCBBC !important;
    }
    #custom-demo .uploadifyQueueItem .cancel {
     float: right;
    }
    #custom-demo .uploadifyQueue .completed {
     color: #C5C5C5;
    }
    #custom-demo .uploadifyProgress {
     background-color: #E5E5E5;
     margin-top: 10px;
     width: 100%;
    }
    #custom-demo .uploadifyProgressBar {
     background-color: #0099FF;
     height: 3px;
     width: 1px;
    }
    #custom-demo #custom-queue {
     border: 1px solid #E5E5E5;
     height: 213px;
     margin-bottom: 10px;
     width: 370px;
    }        
  </style>  

  <script type="text/javascript">
    $(function() {
    $('#custom_file_upload').uploadify({
       'uploader'    : 'uploadify-v2.1.4/uploadify.swf',
       'script'     : 'uploadify-v2.1.4/uploadify.php',
       'cancelImg'   : 'uploadify-v2.1.4/cancel.png',
       'folder'     : 'uploadify-v2.1.4/uploads',
       'multi'     : true,
       'auto'      : true,
       'fileExt'    : '*.jpg;*.gif;*.png;*.txt',
       'fileDesc'    : 'Image Files (.JPG, .GIF, .PNG)',
       'queueID'    : 'custom-queue',
       'queueSizeLimit' : 3,
       'simUploadLimit' : 3,
       'sizeLimit'  : 1024000,
       'removeCompleted': false,
       'onSelectOnce'  : function(event,data) {
         $('#status-message').text(data.filesSelected + ' files have been added to the queue.');
        },
       'onAllComplete' : function(event,data) {
         $('#status-message').text(data.filesUploaded + ' files uploaded, ' + data.errors + ' errors.');
        }
      });        
    });
  </script>
</head>
<body>
  <div id="custom-demo" class="demo">

     <h2>Custom Demo</h2>
    <p>Uploadify is fully customizable. Here is an implementation with multiple files, auto uploads, limited file types, limited queue size, and custom onSelectOnce and onAllComplete functions.</p>
    <div class="demo-box">
      <div id="status-message">Select some files to upload:</div>

      <div id="custom-queue"></div>
      <input id="custom_file_upload" type="file" name="Filedata" />    
    </div>
  </div>
</body>
</html>

Uploadify插件提示$(“#id”).uploadify is not a function错误可能原因
swfobject.js和jquery.uploadify.v2.1.4.min.js由于使用到了jquery的API,所以这两个文件需要依赖于jquery-1.4.2.min.js这个文件。
正常情况下需要引入如下几个js文件:

<script type="text/javascript" src="uploadify-v2.1.4/jquery-1.4.2.min.js" ></script> 
<script type="text/javascript" src="uploadify-v2.1.4/swfobject.js" ></script> 
<script type="text/javascript" src="uploadify-v2.1.4/jquery.uploadify.v2.1.4.min.js" ></script>

而在项目中已经存在了另外一个jquery的JS文件,导致文件冲突。而另外的一个jQuery文件的引入位置位于上面三个js文件引入位置的后面,此时项目中使用的是原本已经存在的jquery的JS文件,导致在加载jquery.uploadify.v2.1.4.min.js文件时还没有可用的jquery相关函数的定义,才会报这个错误。

解决方法:
去掉其中一个jquery的JS文件,并把swfobject.js和jquery.uploadify.v2.1.4.min.js文件放到引入jquery的JS文件的位置的后面即可。

Javascript 相关文章推荐
深入理解JavaScript系列(12) 变量对象(Variable Object)
Jan 16 Javascript
jquery重新播放css动画所遇问题解决
Aug 21 Javascript
js生成的验证码的实现与技术分析
Sep 17 Javascript
javascript中attachEvent用法实例分析
May 14 Javascript
JS比较两个数值的大小实例
Nov 25 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
Dec 18 Javascript
移动设备手势事件库Touch.js使用详解
Aug 18 Javascript
Vue仿支付宝支付功能
May 25 Javascript
es6 symbol的实现方法示例
Apr 02 Javascript
如何用原生js写一个弹窗消息提醒插件
May 24 Javascript
解决vue项目获取dom元素宽高总是不准确问题
Jul 29 Javascript
js实现跳一跳小游戏
Jul 31 Javascript
JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
May 19 #Javascript
当jquery ajax遇上401请求的解决方法
May 19 #Javascript
基于Echarts 3.19 制作常用的图形(非静态)
May 19 #Javascript
前端js文件合并的三种方式推荐
May 19 #Javascript
Node.js+Express配置入门教程
May 19 #Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
May 19 #Javascript
判断数组是否包含某个元素的js函数实现方法
May 19 #Javascript
You might like
Linux下进行MYSQL编程时插入中文乱码的解决方案
2007/03/15 PHP
php实现的简单检验登陆类
2015/06/18 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
php中对象引用和复制实例分析
2019/08/14 PHP
js资料toString 方法
2007/03/13 Javascript
jQuery 研究心得 取得属性的值
2007/11/30 Javascript
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
jQuery操作元素css样式的三种方法
2014/06/04 Javascript
javascript动态控制服务器控件实例
2014/09/05 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
2018/09/17 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
vue 在单页面应用里使用二级套嵌路由
2020/12/19 Vue.js
Pycharm学习教程(1) 定制外观
2017/05/02 Python
Mac 上切换Python多版本
2017/06/17 Python
python SMTP实现发送带附件电子邮件
2018/05/22 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
2020/01/20 Python
python标准库OS模块详解
2020/03/10 Python
详解python metaclass(元类)
2020/08/13 Python
Python datetime模块的使用示例
2021/02/02 Python
纯CSS3单页切换导航菜单界面设计的简单实现
2016/08/16 HTML / CSS
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
什么是.net的Remoting技术
2016/07/08 面试题
个人近期表现材料
2014/02/11 职场文书
发展党员工作情况汇报
2014/10/28 职场文书
2014年移动公司工作总结
2014/12/08 职场文书
电影复兴之路观后感
2015/06/02 职场文书
2015小学教育教学工作总结
2015/07/21 职场文书
运动会三级跳加油稿
2015/07/21 职场文书
2015年物流客服工作总结
2015/07/27 职场文书
安装配置mysql及Navicat prenium的详细流程
2021/06/10 MySQL