原文发布时间为:2010-05-13 —— 来源于本人的百度文章 [由搬家工具导入]

本文将带给大家很帅的jquery上传插件,ASP.NET版本的哦,这个插件是Uploadify实现的效果非常不错,带进度显示。

首先到Uploadify官方下载这个插件:

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

    好,下载好之后,按下面的步骤来实现一个简单的上传功能。

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

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

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

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

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

    Code [http://www.xueit.com]<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <title>Uploadify</title>
    <link href="JS/jquery.uploadify-v2.1.0/example/css/default.css"
    rel="stylesheet" type="text/css" />
    <link href="JS/jquery.uploadify-v2.1.0/uploadify.css"
    rel="stylesheet" type="text/css" />

    <script type="text/javascript"
    src="JS/jquery.uploadify-v2.1.0/jquery-1.3.2.min.js"></script>

    <script type="text/javascript"
    src="JS/jquery.uploadify-v2.1.0/swfobject.js"></script>

    <script type="text/javascript"
    src="JS/jquery.uploadify-v2.1.0/jquery.uploadify.v2.1.0.min.js"></script>

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

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

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

    Code [http://www.xueit.com]public void ProcessRequest(HttpContext context)
    {
    context.Response.ContentType = "text/plain";
    context.Response.Charset = "utf-8";

    HttpPostedFile file = context.Request.Files["Filedata"];
    string uploadPath =
    HttpContext.Current.Server.MapPath(@context.Request["folder"]) "\\";

    if (file != null)
    {
    if (!Directory.Exists(uploadPath))
    {
    Directory.CreateDirectory(uploadPath);
    }
    file.SaveAs(uploadPath file.FileName);
    //下面这句代码缺少的话,上传成功后上传队列的显示不会自动消失
    context.Response.Write("1");
    }
    else
    {
    context.Response.Write("0");
    }

    6 运行后效果如下图:

    -



    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文件”,打开文件选择框效果如下图:

    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
    :选择文件到文件队列中后的每一个文件上的关闭按钮图标,如下图:

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

    onInit : 做一些初始化的工作

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

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

    代码如下:

    Code [http://www.xueit.com]

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

    }
    });
    });
    }

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

    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

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

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

    相关函数介绍

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

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

    $('#uploadify').uploadifySettings('folder','JS');

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

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

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

    $('#uploadify').uploadifyCancel(id);
    好,这个插件使用方法基本都介绍完了。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文件”,打开文件选择框效果如下图:  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 :选择文件到文件队列中后的每一个文件上的关闭按钮图标

  • query带进度上传插件Uploadify(ASP.NET版本)使用的更多相关文章

    1. ASP.NET MVC 4 中Jquery上传插件Uploadify简单使用-版本:3.2.1

      1.官网下载开发包:http://www.uploadify.com/download/,选择免费的Flash版本: 2.解压后,需要用到以下几个文件: 需要修改uploadify.css中取消上传按 ...

    2. 【转】JQuery上传插件Uploadify使用详解及错误处理

      转自:http://www.jb51.net/article/43498.htm 关于JQuery上传插件Uploadify使用详解网上一大把,基本上内容都一样.我根据网上的步骤配置完成后,会报一些错 ...

    3. jQuery文件上传插件Uploadify(转)

      一款基于flash的文件上传,有进度条和支持大文件上传,且可以多文件上传队列. 这款在flash的基础上增加了html5的支持,所以在移动端也可以使用. 由于官方提供的版本是flash免费,html5 ...

    4. 强大的支持多文件上传的jQuery文件上传插件Uploadify

      支持多文件上传的jQuery文件上传插件Uploadify,目前此插件有两种版本即Flash版本和HTML5版本,对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持Fla ...

    5. JQuery上传插件uploadify优化

      旧版的uploadify是基于flash上传的,但是总有那么些问题,让我们用的不是很舒服.今天主要分享下在项目中用uploadify遇到的一些问题,以及优化处理 官方下载 官方文档 官方演示 下面是官 ...

    6. jquery上传插件uploadify 报错http error 302 解决方法之一

      前段时间用到jquery上传插件uploadify时,始终出现系统报出 http error 302 的错误. 网上大量搜集信息,基本上都是说session值丢失的问题,根据网友提供的解决方案进行修改 ...

    7. js上传插件uploadify自动检测不到flash控件的问题

      [问题描述] 项目开发中,由于使用了js的一个上传插件uploadify,下载的是flash版本的,后来在谷歌浏览器上运行时经常报flash控件未安装,虽然下图是uploadify自动检测自动弹出来的 ...

    8. JQuery上传插件Uploadify使用详解 asp.net版

      先来一个实例 Uploadify插件是JQuery的一个文件支持多文件上传的上传插件,ajax异步上传,实现的效果非常不错,带进度显示.不过官方提供的实例时php版本的,本文将详细介绍Uploadif ...

    9. JQuery上传插件Uploadify使用详解

      本文转载http://www.cnblogs.com/oec2003/archive/2010/01/06/1640027.html Uploadify是JQuery的一个上传插件,实现的效果非常不错 ...

    随机推荐

    1. Windows10系统下查看mysql的端口号并修改

      mysql的端口号默认是3306,初学者可能有时会忘记或者之前修改了默认的端口号,忘记了,或者很多时候我们一台电脑需要安装两个mysql或者想设置一个自己的喜欢的数字,那么接下来我们来看看如何查看或者 ...

    2. (83)zabbix Less than 25% free in the configuration cache解决

      在zabbix server默认配置下,出现告警:Less than 25% free in the configuration cache,字面意思是:可用的配置缓存少于25%. 报错如下图: 增加 ...

    3. NoSQL - KVstore -Redis

      Redis键迁移 在使用Redis的过程中,很多时候我们会遇到需要进行键迁移的问题,需要将指定Redis中的指定数据迁移到其他Redis当中,键迁移有三种方法,我们来进行一一介绍. 一.move mo ...

    4. java中的继承 (2013-10-11-163 写的日志迁移

      继承:为了解决代码重用 定义: 子类通过继承父类,可以调用父类中非私有的属性和方法,达到重用的目的,通过关键字extends实现:   ################以下为代码演示: class A ...

    5. python代码notepad++不变色问题。

      原来是文档后缀名是.txt造成的,应该改成.py,疏忽了...

    6. bootmem API总结

      bootmem_init()函数执行完成后,linux启动初期的bootmem分配器就初始化完成了,可以调用bootmem提供的API分配内存. 这些API在include/linux/bootmem ...

    7. Neon Lights in Hong Kong【香港霓虹灯】

      Neon Lights in Hong Kong Neon is to Hong Kong as red phone booths are to London and fog is to San Fr ...

    8. Benelux Algorithm Programming Contest 2014 Final

      // Button Bashing (bfs) 1 #include <iostream> #include <cstdio> #include <cstring> ...

    9. 【NopCommerce 3.1】asp.net mvc 利用jQuery from.js上传用户头像

      纯代码不解释. 在CusotmerControllers中添加上传方法 /// <summary> /// ajax上传用户头像 /// </summary> /// < ...

    10. 设计模式之第4章-装饰模式(Java实现)

      设计模式之第4章-装饰模式(Java实现) “怎么了,鱼哥?” “唉,别提了,网购了一件衣服,结果发现和商家描述的差太多了,有色差就算了,质量还不好,质量不好就算了,竟然大小也不行,说好的3个X,邮的 ...