基于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 一次处理多个ajax请求的代码
Sep 02 Javascript
九种js弹出对话框的方法总结
Mar 12 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
Mar 11 Javascript
javascript获取select值的方法分析
Jul 02 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
Aug 19 Javascript
使用堆实现Top K算法(JS实现)
Dec 25 Javascript
Bootstrap模态框插件使用详解
May 11 Javascript
javascript实现循环广告条效果
Dec 12 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
Oct 12 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
May 15 Javascript
实用Javascript调试技巧分享(小结)
Jun 18 Javascript
浅谈vue 锚点指令v-anchor的使用
Nov 13 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
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
2014/06/22 PHP
php银联网页支付实现方法
2015/03/04 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
2019/09/26 PHP
符合W3C网页标准的iframe标签的使用方法
2007/07/19 Javascript
JavaScript中的连字符详解
2013/11/28 Javascript
Jquery操作radio的简单实例
2014/01/06 Javascript
AngularJS HTML编译器介绍
2014/12/06 Javascript
vue项目中做编辑功能传递数据时遇到问题的解决方法
2016/12/19 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
windows 下安装nodejs 环境变量设置
2017/02/02 NodeJs
vue之数据交互实例代码
2017/06/16 Javascript
深入浅析JSONAPI在PHP中的应用
2017/12/24 Javascript
JavaScript常用事件介绍
2019/01/21 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
2019/04/17 Javascript
vue 实现Web端的定位功能 获取经纬度
2019/08/08 Javascript
vue 调用 RESTful风格接口操作
2020/08/11 Javascript
[53:15]Mineski vs iG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
python简单获取本机计算机名和IP地址的方法
2015/06/03 Python
Windows下为Python安装Matplotlib模块
2015/11/06 Python
详解Python网络框架Django和Scrapy安装指南
2019/04/01 Python
python实现在cmd窗口显示彩色文字
2019/06/24 Python
PyTorch: 梯度下降及反向传播的实例详解
2019/08/20 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
Farfetch澳大利亚官网:Farfetch Australia
2020/04/26 全球购物
高中毕业生自我鉴定范文
2013/09/26 职场文书
大学毕业登记表自我鉴定
2013/10/09 职场文书
妈妈的账单教学反思
2014/02/06 职场文书
行政助理的岗位职责
2014/02/18 职场文书
安全责任书怎么写
2014/07/28 职场文书
拾金不昧感谢信
2015/01/21 职场文书
音乐之声观后感
2015/06/04 职场文书
InterProcessMutex实现zookeeper分布式锁原理
2022/03/21 Java/Android