基于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 相关文章推荐
Extjs列表详细信息窗口新建后自动加载解决方法
Apr 02 Javascript
js 判断上传文件大小及格式代码
Nov 13 Javascript
深入理解JSON数据源格式
Jan 10 Javascript
JS定义网页表单提交(submit)的方法
Mar 20 Javascript
详解angularJs中自定义directive的数据交互
Jan 13 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
Feb 14 Javascript
javascript  数组排序与对象排序的实例
Jul 17 Javascript
原生JS实现的碰撞检测功能示例
May 18 Javascript
vue 权限认证token的实现方法
Jul 17 Javascript
jQuery实现的五星点评功能【案例】
Feb 18 jQuery
Node.js 的 GC 机制详解
Jun 03 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
Sep 20 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
php根据日期判断星座的函数分享
2014/02/13 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
jQuery 阴影插件代码分享
2012/01/09 Javascript
javascript中直接写php代码的方法
2013/07/31 Javascript
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
删除javascript中注释语句的正则表达式
2014/06/11 Javascript
Javascript模拟加速运动与减速运动代码分享
2014/12/11 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
jquery+CSS3实现淘宝移动网页菜单效果
2015/08/31 Javascript
基于JavaScript实现移动端TAB触屏切换效果
2015/10/20 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
2016/06/16 Javascript
HTML5 canvas 9绘制图片实例详解
2016/09/06 Javascript
微信小程序 获取微信OpenId详解及实例代码
2016/10/31 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
2017/02/14 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
解决vue-cli3 使用子目录部署问题
2018/07/19 Javascript
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
深入理解令牌认证机制(token)
2019/08/22 Javascript
9个JavaScript日常开发小技巧
2020/10/06 Javascript
Python爬虫框架Scrapy安装使用步骤
2014/04/01 Python
使用Python编写vim插件的简单示例
2015/04/17 Python
ubuntu17.4下为python和python3装上pip的方法
2018/06/12 Python
Django静态资源部署404问题解决方案
2020/05/11 Python
Python控制鼠标键盘代码实例
2020/12/08 Python
浅谈CSS3中的变形功能-transform功能
2017/12/27 HTML / CSS
css3媒体查询中device-width和width的区别详解
2020/03/27 HTML / CSS
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
2014年勤工助学工作总结
2014/11/24 职场文书
行为习惯主题班会
2015/08/14 职场文书
宝宝满月宴答谢词
2015/09/30 职场文书
Windows和Linux上部署Golang并运行程序
2022/04/22 Servers
Nginx限流和黑名单配置
2022/05/20 Servers