基于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 相关文章推荐
同域jQuery(跨)iframe操作DOM(示例代码)
Dec 13 Javascript
jQuery实现contains方法不区分大小写的方法
Feb 13 Javascript
JavaScript中扩展Array contains方法实例
Aug 23 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
Sep 04 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
Aug 25 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
Sep 16 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
Oct 10 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
Mar 02 Javascript
js手机号4位显示空格,银行卡每4位显示空格效果
Mar 23 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
Aug 30 Javascript
浅谈关于iview表单验证的问题
Sep 29 Javascript
利用angular自动编译andriod APK的绕坑经历分享
Mar 08 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
4月1日重磅发布!《星际争霸II》6.0.0版本更新
2020/04/09 星际争霸
php模拟asp中的XmlHttpRequest实现http请求的代码
2011/03/24 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
2011/07/03 PHP
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
PHP数组与对象之间使用递归实现转换的方法
2015/06/24 PHP
PHP使用Pthread实现的多线程操作实例
2015/11/14 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
使用CSS3实现字体颜色渐变的实现
2021/03/09 HTML / CSS
Javascript Jquery 遍历Json的实现代码
2010/03/31 Javascript
javascript实现相同事件名称,不同命名空间的调用方法
2015/06/26 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
jquery实现提示语淡入效果
2017/05/05 jQuery
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
jquery animate动画持续运动的实例
2017/11/29 jQuery
Nginx 配置多站点vhost 的方法
2018/01/07 Javascript
vue基于element的区间选择组件
2018/09/07 Javascript
vue1.0和vue2.0的watch监听事件写法详解
2018/09/11 Javascript
JavaScript之解构赋值的理解
2019/01/30 Javascript
基于JS实现前端压缩上传图片的实例代码
2019/05/14 Javascript
node 文件上传接口的转发的实现
2019/09/23 Javascript
vue 调用 RESTful风格接口操作
2020/08/11 Javascript
JavaScript实现复选框全选和取消全选
2020/11/20 Javascript
精确查找PHP WEBSHELL木马的方法(1)
2011/04/12 Python
python 编写简单网页服务器的实例
2018/06/01 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
Under Armour美国官网:美国知名高端功能性运动品牌
2016/09/05 全球购物
职业规划书如何设计?
2014/01/09 职场文书
学徒工职责
2014/03/06 职场文书
航海技术专业毕业生推荐信
2014/07/09 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
三好学生个人总结
2015/02/15 职场文书
2016计划生育先进个人事迹材料
2016/02/29 职场文书
Window server中安装Redis的超详细教程
2021/11/17 Redis
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS