0

0

JQuery上传插件Uploadify使用详解

php中文网

php中文网

发布时间:2016-06-13 20:04:37

|

1075人浏览过

|

来源于php中文网

原创

uploadify是jquery的一个上传插件,实现的效果非常不错,带进度显示。不过官方提供的实例时php版本的,本文将详细介绍uploadify在aspnet中的使用,您也可以点击下面的链接进行演示或下载。

  • 官方下载
  • 官方文档
  • 官方演示

首先按下面的步骤来实现一个简单的上传功能。

1 创建Web项目,命名为JQueryUploadDemo,从官网上下载最新的版本解压后添加到项目中。

2 在项目中添加UploadHandler.ashx文件用来处理文件的上传。

3 在项目中添加UploadFile文件夹,用来存放上传的文件。

进行完上面三步后项目的基本结构如下图:

2010-01-05_094439

4 Default.aspx的html页的代码修改如下:

<span style="color: blue;"><span style="color: #a31515;">html </span><span style="color: red;">xmlns</span><span style="color: blue;">="http://www.w3.org/1999/xhtml">
<span style="color: #a31515;">head </span><span style="color: red;">runat</span><span style="color: blue;">="server">
    <span style="color: #a31515;">title</span><span style="color: blue;">></span><span>Uploadify</span><span style="color: blue;"></span><span style="color: #a31515;">title</span><span style="color: blue;">>
    <span style="color: #a31515;">link </span><span style="color: red;">href</span><span style="color: blue;">="JS/jquery.uploadify-v2.1.0/example/css/default.css"
     </span><span style="color: red;">rel</span><span style="color: blue;">="stylesheet" </span><span style="color: red;">type</span><span style="color: blue;">="text/css" />
    <span style="color: #a31515;">link </span><span style="color: red;">href</span><span style="color: blue;">="JS/jquery.uploadify-v2.1.0/uploadify.css"
     </span><span style="color: red;">rel</span><span style="color: blue;">="stylesheet" </span><span style="color: red;">type</span><span style="color: blue;">="text/css" />

    <span style="color: #a31515;">script </span><span style="color: red;">type</span><span style="color: blue;">="text/javascript"
     </span><span style="color: red;">src</span><span style="color: blue;">="JS/jquery.uploadify-v2.1.0/jquery-1.3.2.min.js"></span><span style="color: #a31515;">script</span><span style="color: blue;">>

    <span style="color: #a31515;">script </span><span style="color: red;">type</span><span style="color: blue;">="text/javascript"
     </span><span style="color: red;">src</span><span style="color: blue;">="JS/jquery.uploadify-v2.1.0/swfobject.js"></span><span style="color: #a31515;">script</span><span style="color: blue;">>

    <span style="color: #a31515;">script </span><span style="color: red;">type</span><span style="color: blue;">="text/javascript"
   </span><span style="color: red;">src</span><span style="color: blue;">="JS/jquery.uploadify-v2.1.0/jquery.uploadify.v2.1.0.min.js"></span><span style="color: #a31515;">script</span><span style="color: blue;">>

    <span style="color: #a31515;">script </span><span style="color: red;">type</span><span style="color: blue;">="text/javascript">
        </span><span>$(document).ready(</span><span style="color: blue;">function</span><span>()
        {
            $(</span><span style="color: #a31515;">"#uploadify"</span><span>).uploadify({
                </span><span style="color: #a31515;">'uploader'</span><span>: </span><span style="color: #a31515;">'JS/jquery.uploadify-v2.1.0/uploadify.swf'</span><span>,
                </span><span style="color: #a31515;">'script'</span><span>: </span><span style="color: #a31515;">'UploadHandler.ashx'</span><span>,
                </span><span style="color: #a31515;">'cancelImg'</span><span>: </span><span style="color: #a31515;">'JS/jquery.uploadify-v2.1.0/cancel.png'</span><span>,
                </span><span style="color: #a31515;">'folder'</span><span>: </span><span style="color: #a31515;">'UploadFile'</span><span>,
                </span><span style="color: #a31515;">'queueID'</span><span>: </span><span style="color: #a31515;">'fileQueue'</span><span>,
                </span><span style="color: #a31515;">'auto'</span><span>: </span><span style="color: blue;">false</span><span>,
                </span><span style="color: #a31515;">'multi'</span><span>: </span><span style="color: blue;">true
            </span><span>});
        });  
    </span><span style="color: blue;"></span><span style="color: #a31515;">script</span><span style="color: blue;">>

</span><span style="color: #a31515;">head</span><span style="color: blue;">>
<span style="color: #a31515;">body</span><span style="color: blue;">>
    <span style="color: #a31515;">div </span><span style="color: red;">id</span><span style="color: blue;">="fileQueue"></span><span style="color: #a31515;">div</span><span style="color: blue;">>
    <span style="color: #a31515;">input </span><span style="color: red;">type</span><span style="color: blue;">="file" </span><span style="color: red;">name</span><span style="color: blue;">="uploadify" </span><span style="color: red;">id</span><span style="color: blue;">="uploadify" />
    <span style="color: #a31515;">p</span><span style="color: blue;">>
      <span style="color: #a31515;">a </span><span style="color: red;">href</span><span style="color: blue;">="javascript:$('#uploadify').uploadifyUpload()"></span><span>上传</span><span style="color: blue;"></span><span style="color: #a31515;">a</span><span style="color: blue;">></span><span>| 
      </span><span style="color: blue;"><span style="color: #a31515;">a </span><span style="color: red;">href</span><span style="color: blue;">="javascript:$('#uploadify').uploadifyClearQueue()"></span><span>取消上传</span><span style="color: blue;"></span><span style="color: #a31515;">a</span><span style="color: blue;">>
    </span><span style="color: #a31515;">p</span><span style="color: blue;">>
</span><span style="color: #a31515;">body</span><span style="color: blue;">>
</span><span style="color: #a31515;">html</span><span style="color: blue;">></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

5  UploadHandler类的ProcessRequest方法代码如下:

<span style="color: blue;">public void </span><span>ProcessRequest(</span><span style="color: #2b91af;">HttpContext </span><span>context)
{
    context.Response.ContentType = </span><span style="color: #a31515;">"text/plain"</span><span>;   
    context.Response.Charset = </span><span style="color: #a31515;">"utf-8"</span><span>;   

    </span><span style="color: #2b91af;">HttpPostedFile </span><span>file = context.Request.Files[</span><span style="color: #a31515;">"Filedata"</span><span>];   
    </span><span style="color: blue;">string  </span><span>uploadPath = 
        </span><span style="color: #2b91af;">HttpContext</span><span>.Current.Server.MapPath(@context.Request[</span><span style="color: #a31515;">"folder"</span><span>])+</span><span style="color: #a31515;">"\"</span><span>;  

    </span><span style="color: blue;">if </span><span>(file != </span><span style="color: blue;">null</span><span>)  
    {  
       </span><span style="color: blue;">if </span><span>(!</span><span style="color: #2b91af;">Directory</span><span>.Exists(uploadPath))  
       {  
           </span><span style="color: #2b91af;">Directory</span><span>.CreateDirectory(uploadPath);  
       }   
       file.SaveAs(uploadPath + file.FileName);  
        </span><span style="color: green;">//下面这句代码缺少的话,上传成功后上传队列的显示不会自动消失
       </span><span>context.Response.Write(</span><span style="color: #a31515;">"1"</span><span>);  
    }   
    </span><span style="color: blue;">else  
    </span><span>{   
        context.Response.Write(</span><span style="color: #a31515;">"0"</span><span>);   
    }  
}</span>

6 运行后效果如下图:

2010-01-05_095617

7 选择了两个文件后,点击上传,就可以看到UploadFile文件夹中会增加这两个文件。

上面简单地实现了一个上传的功能,依靠函数uploadify实现,uploadify函数的参数为json格式,可以对json对象的key值的修改来进行自定义的设置,如multi设置为true或false来控制是否可以进行多文件上传,下面就来介绍下这些key值的意思:

uploader : uploadify.swf 文件的相对路径,该swf文件是一个带有文字BROWSE的按钮,点击后淡出打开文件对话框,默认值:uploadify.swf。
script :   后台处理程序的相对路径 。默认值:uploadify.php
checkScript :用来判断上传选择的文件在服务器是否存在的后台处理程序的相对路径
fileDataName :设置一个名字,在服务器处理程序中根据该名字来取上传文件的数据。默认为Filedata
method : 提交方式Post 或Get 默认为Post
scriptAccess :flash脚本文件的访问模式,如果在本地测试设置为always,默认值:sameDomain 
folder :  上传文件存放的目录 。
queueID : 文件队列的ID,该ID与存放文件队列的div的ID一致。
queueSizeLimit : 当允许多文件生成时,设置选择文件的个数,默认值:999 。
multi : 设置为true时可以上传多个文件。
auto : 设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传 。
fileDesc : 这个属性值必须设置fileExt属性后才有效,用来设置选择文件对话框中的提示文本,如设置fileDesc为“请选择rar doc pdf文件”,打开文件选择框效果如下图:

2010-01-05_220920

fileExt : 设置可以选择的文件的类型,格式如:'*.doc;*.pdf;*.rar' 。
sizeLimit : 上传文件的大小限制 。
simUploadLimit : 允许同时上传的个数 默认值:1 。
buttonText : 浏览按钮的文本,默认值:BROWSE 。
buttonImg : 浏览按钮的图片的路径 。
hideButton : 设置为true则隐藏浏览按钮的图片 。
rollover : 值为true和false,设置为true时当鼠标移到浏览按钮上时有反转效果。
width : 设置浏览按钮的宽度 ,默认值:110。
height : 设置浏览按钮的高度 ,默认值:30。
wmode : 设置该项为transparent 可以使浏览按钮的flash背景文件透明,并且flash文件会被置为页面的最高层。 默认值:opaque 。
cancelImg :选择文件到文件队列中后的每一个文件上的关闭按钮图标,如下图:

2010-01-05_220626

上面介绍的key值的value都为字符串或是布尔类型,比较简单,接下来要介绍的key值的value为一个函数,可以在选择文件、出错或其他一些操作的时候返回一些信息给用户。

onInit : 做一些初始化的工作

onSelect :选择文件时触发,该函数有三个参数

  • event:事件对象。
  • queueID:文件的唯一标识,由6为随机字符组成。
  • fileObj:选择的文件对象,有name、size、creationDate、modificationDate、type 5个属性。

代码如下:

<span>$(document).ready(</span><span style="color: blue;">function</span><span>()
{
    $(</span><span style="color: #a31515;">"#uploadify"</span><span>).uploadify({
        </span><span style="color: #a31515;">'uploader'</span><span>: </span><span style="color: #a31515;">'JS/jquery.uploadify-v2.1.0/uploadify.swf'</span><span>,
        </span><span style="color: #a31515;">'script'</span><span>: </span><span style="color: #a31515;">'UploadHandler.ashx'</span><span>,
        </span><span style="color: #a31515;">'cancelImg'</span><span>: </span><span style="color: #a31515;">'JS/jquery.uploadify-v2.1.0/cancel.png'</span><span>,
        </span><span style="color: #a31515;">'folder'</span><span>: </span><span style="color: #a31515;">'UploadFile'</span><span>,
        </span><span style="color: #a31515;">'queueID'</span><span>: </span><span style="color: #a31515;">'fileQueue'</span><span>,
        </span><span style="color: #a31515;">'auto'</span><span>: </span><span style="color: blue;">false</span><span>,
        </span><span style="color: #a31515;">'multi'</span><span>: </span><span style="color: blue;">true</span><span>,
        </span><span style="color: #a31515;">'onInit'</span><span>:</span><span style="color: blue;">function</span><span>(){alert(</span><span style="color: #a31515;">"1"</span><span>);},
        </span><span style="color: #a31515;">'onSelect'</span><span>: </span><span style="color: blue;">function</span><span>(e, queueId, fileObj)
        {
            alert(</span><span style="color: #a31515;">"唯一标识:" </span><span>+ queueId + </span><span style="color: #a31515;">"
" </span><span>+
                  </span><span style="color: #a31515;">"文件名:" </span><span>+ fileObj.name + </span><span style="color: #a31515;">"
" </span><span>+
                  </span><span style="color: #a31515;">"文件大小:" </span><span>+ fileObj.size + </span><span style="color: #a31515;">"
" </span><span>+
                  </span><span style="color: #a31515;">"创建时间:" </span><span>+ fileObj.creationDate + </span><span style="color: #a31515;">"
" </span><span>+
                  </span><span style="color: #a31515;">"最后修改时间:" </span><span>+ fileObj.modificationDate + </span><span style="color: #a31515;">"
" </span><span>+
                  </span><span style="color: #a31515;">"文件类型:" </span><span>+ fileObj.type
            );

        }
    });
});  </span>

当选择一个文件后弹出的消息如下图:

php订单系统可以整合支付宝接口
php订单系统可以整合支付宝接口

一、系统设置:用Dreamweaver等网页设计软件在代码视图下打开【dddingdan/config.php】系统设置文件,按注释说明进行系统设置。 二、系统使用:WFPHP在线订单系统是无台后的,不用数据库,也不用安装,解压源码包后,先进行系统设置,然后把整个【dddingdan】文件夹上传到服务器。在网页中要插入订单系统的位置,插入系统调用代码: 注意:id=01就表示使用样式01,如果要使

下载

2010-01-05_225323

onSelectOnce :在单文件或多文件上传时,选择文件时触发。该函数有两个参数event,data,data对象有以下几个属性:

  • fileCount:选择文件的总数。
  • filesSelected:同时选择文件的个数,如果一次选择了3个文件该属性值为3。
  • filesReplaced:如果文件队列中已经存在A和B两个文件,再次选择文件时又选择了A和B,该属性值为2。
  • allBytesTotal:所有选择的文件的总大小。

onCancel : 当点击文件队列中文件的关闭按钮或点击取消上传时触发。该函数有event、queueId、fileObj、data四个参数,前三个参数同onSelect 中的三个参数,data对象有两个属性fileCount和allBytesTotal。

  • fileCount:取消一个文件后,文件队列中剩余文件的个数。
  • allBytesTotal:取消一个文件后,文件队列中剩余文件的大小。

onClearQueue 当调用函数fileUploadClearQueue时触发。有event和data两个参数,同onCancel 中的两个对应参数。

onQueueFull :当设置了queueSizeLimit并且选择的文件个数超出了queueSizeLimit的值时触发。该函数有两个参数event和queueSizeLimit。

onError :当上传过程中发生错误时触发。该函数有event、queueId、fileObj、errorObj四个参数,其中前三个参数同上,errorObj对象有type和info两个属性。

  • type:错误的类型,有三种‘HTTP’, ‘IO’, or ‘Security’
  • info:错误的描述

onOpen :点击上传时触发,如果auto设置为true则是选择文件时触发,如果有多个文件上传则遍历整个文件队列。该函数有event、queueId、fileObj三个参数,参数的解释同上。

onProgress :点击上传时触发,如果auto设置为true则是选择文件时触发,如果有多个文件上传则遍历整个文件队列,在onOpen之后触发。该函数有event、queueId、fileObj、data四个参数,前三个参数的解释同上。data对象有四个属性percentage、bytesLoaded、allBytesLoaded、speed:

  • percentage:当前完成的百分比
  • bytesLoaded:当前上传的大小
  • allBytesLoaded:文件队列中已经上传完的大小
  • speed:上传速率 kb/s

onComplete:文件上传完成后触发。该函数有四个参数event、queueId、fileObj、response、data五个参数,前三个参数同上。response为后台处理程序返回的值,在上面的例子中为1或0,data有两个属性fileCount和speed

  • fileCount:剩余没有上传完成的文件的个数。
  • speed:文件上传的平均速率 kb/s

注:fileObj对象和上面讲到的有些不太一样,onComplete 的fileObj对象有个filePath属性可以取出上传文件的路径。

onAllComplete:文件队列中所有的文件上传完成后触发。该函数有event和data两个参数,data有四个属性,分别为:

  • filesUploaded :上传的所有文件个数。
  • errors :出现错误的个数。
  • allBytesLoaded :所有上传文件的总大小。
  • speed :平均上传速率 kb/s

相关函数介绍

在上面的例子中已经用了uploadifyUpload和uploadifyClearQueue两个函数,除此之外还有几个函数:

uploadifySettings:可以动态修改上面介绍的那些key值,如下面代码

<span>$(</span><span style="color: #a31515;">'#uploadify'</span><span>).uploadifySettings(</span><span style="color: #a31515;">'folder'</span><span>,</span><span style="color: #a31515;">'JS'</span><span>);</span>

如果上传按钮的事件写成下面这样,文件将会上传到uploadifySettings定义的目录中

<span style="color: blue;"><span style="color: #a31515;">a </span><span style="color: red;">href</span><span style="color: blue;">="javascript:$('#uploadify').uploadifySettings('folder','JS');</span></span>
<span style="color: blue;">$('#uploadify').uploadifyUpload()"></span><span>上传</span><span style="color: blue;"></span><span style="color: #a31515;">a</span><span style="color: blue;">></span>

uploadifyCancel:该函数接受一个queueID作为参数,可以取消文件队列中指定queueID的文件。

<span>$(</span><span style="color: #a31515;">'#uploadify'</span><span>).uploadifyCancel(id);</span>

花了一个晚上,终于写完了,对JQuery这个上传插件也基本了解了,希望对大家有所帮助,不对之处还望大家指正。

源码下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Golang 并发编程模型与工程实践:从语言特性到系统性能
Golang 并发编程模型与工程实践:从语言特性到系统性能

本专题系统讲解 Golang 并发编程模型,从语言级特性出发,深入理解 goroutine、channel 与调度机制。结合工程实践,分析并发设计模式、性能瓶颈与资源控制策略,帮助将并发能力有效转化为稳定、可扩展的系统性能优势。

2

2026.02.27

Golang 高级特性与最佳实践:提升代码艺术
Golang 高级特性与最佳实践:提升代码艺术

本专题深入剖析 Golang 的高级特性与工程级最佳实践,涵盖并发模型、内存管理、接口设计与错误处理策略。通过真实场景与代码对比,引导从“可运行”走向“高质量”,帮助构建高性能、可扩展、易维护的优雅 Go 代码体系。

1

2026.02.27

Golang 测试与调试专题:确保代码可靠性
Golang 测试与调试专题:确保代码可靠性

本专题聚焦 Golang 的测试与调试体系,系统讲解单元测试、表驱动测试、基准测试与覆盖率分析方法,并深入剖析调试工具与常见问题定位思路。通过实践示例,引导建立可验证、可回归的工程习惯,从而持续提升代码可靠性与可维护性。

0

2026.02.27

漫蛙app官网链接入口
漫蛙app官网链接入口

漫蛙App官网提供多条稳定入口,包括 https://manwa.me、https

56

2026.02.27

deepseek在线提问
deepseek在线提问

本合集汇总了DeepSeek在线提问技巧与免登录使用入口,助你快速上手AI对话、写作、分析等功能。阅读专题下面的文章了解更多详细内容。

4

2026.02.27

AO3官网直接进入
AO3官网直接进入

AO3官网最新入口合集,汇总2026年可用官方及镜像链接,助你快速稳定访问Archive of Our Own平台。阅读专题下面的文章了解更多详细内容。

53

2026.02.27

php框架基础教程
php框架基础教程

本合集涵盖2026年最新PHP框架入门知识与基础教程,适合初学者快速掌握主流框架核心概念与使用方法。阅读专题下面的文章了解更多详细内容。

1

2026.02.27

php框架怎么用
php框架怎么用

本合集专为零基础学习者打造,系统介绍主流PHP框架的安装、配置与基础用法,助你快速入门Web开发。阅读专题下面的文章了解更多详细内容。

4

2026.02.27

无禁词AI聊天软件下载大全
无禁词AI聊天软件下载大全

本合集精选多款免费、无违禁词限制的AI聊天软件,支持自定义角色、剧情畅聊,体验真实互动感。阅读专题下面的文章了解更多详细内容。

19

2026.02.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 3.9万人学习

Django 教程
Django 教程

共28课时 | 4.6万人学习

React 教程
React 教程

共58课时 | 5.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号