jQuery.Uploadify插件实现带进度条的批量上传功能


Posted in Javascript onJune 08, 2016

本文实例讲述了jQuery.Uploadify插件实现带进度条的批量上传功能。分享给大家供大家参考,具体如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UpLoad.aspx.cs" Inherits="UploadifyDemo_UpLoad" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
  <title>Jquery Uploadify上传带进度条,且多参数</title>
  <link href="js/jquery.uploadify-v2.1.4/uploadify.css" rel="stylesheet" type="text/css" />
  <script type="text/javascript" src="js/jquery.uploadify-v2.1.4/jquery-1.4.2.min.js"></script>
  <script type="text/javascript" src="js/jquery.uploadify-v2.1.4/swfobject.js"></script>
  <script type="text/javascript" src="js/jquery.uploadify-v2.1.4/jquery.uploadify.v2.1.4.min.js"></script>
  <script type="text/javascript">
    $(document).ready(function () {
      $("#pics").hide();
      $("#uploadify").uploadify({
        'uploader': 'js/jquery.uploadify-v2.1.4/uploadify.swf', //uploadify.swf文件的路径
        'script': 'UploadHandler.ashx?type=add', //处理文件上传的后台脚本的路径
        'cancelImg': 'js/jquery.uploadify-v2.1.4/cancel.png',
        'buttonText': 'Select Image',
        'folder': 'UploadFile/<% = DateTime.Now.ToString("yyyyMMdd") %>/', //上传文件夹的路径按20130416
        'queueID': 'fileQueue', //页面中,你想要用来作为文件队列的元素的id
        'auto': false, //当文件被添加到队列时,自动上传
        'multi': true, //设置为true将允许多文件上传
        'fileExt': '*.jpg;*.gif;*.png', //允许上传的文件后缀
        'queueSizeLimit': 5,
        'fileDesc': 'Web Image Files (.JPG, .GIF, .PNG)', //在浏览窗口底部的文件类型下拉菜单中显示的文本
        'sizeLimit': 1024000, //上传文件的大小限制,单位为字节 1024*1000 1M
        'onComplete': function (event, queueID, fileObj, response, data) {
          var html = "";
          html += "  <li class=\'myli\'>";
          html += "  <img src=\"" + response + "\" class=\'myimg\'/>";
          html += "  <div style=\" position:absolute; right:8px; bottom:5px\">";
          html += "    <img title=\"点击删除\" src=\"Images/delete.gif\" onclick=\"delImage(\'" + response + "\');\" />";
          html += "  </div>";
          html += "  </li>";
          $("#pics").append(html);
        },
        'onAllComplete': function (event, data) { //当上传队列中的所有文件都完成上传时触发
          //alert(data.filesUploaded + ' 个文件上传成功!');
          $("#pics").fadeIn();
        }
      });
    });
    function uploadpara() {
      //自定义传递参数
      $('#uploadify').uploadifySettings('scriptData', { 'name': $('#txtName').val(), 'albums': $('#txtAlbums').val() });
      $('#uploadify').uploadifyUpload();
    }
    function delImage(picurl) {
      jsonAjax("UploadHandler.ashx", "type=del&picurl=" + picurl, "text", callBackTxt);
    }
    function jsonAjax(url, param, datat, callback) {
      $.ajax({
        type: "post",
        url: url,
        data: param,
        dataType: datat,
        success: callback,
        error: function () {
          jQuery.fn.mBox({
            message: '恢复失败'
          });
        }
      });
    }
    function callBackTxt(data) {
      var o = data;
      if (o != "") {
        var e = $(".myli img[src='" + data + "']");
        e.each(function () {
          $(this).parent().remove();
        })
      } else {
        alert("删除失败");
      }
    };
  </script>
  <style type="text/css">
  .myul
  {
   margin:5px 5px 5px 5px;
   padding:0px;
  }
  .myli
  {
    list-style-type:none;
    width:150px;
    height:150px;
    display:inline;
    position:relative;
  }
  .myimg
  {
    width:120px;
    height:120px;
  }
  </style>
</head>
<body>
  <form id="form1" runat="server">
  <div>
  <div id="fileQueue"></div>
  <input type="file" name="uploadify" id="uploadify" />
  <div id="pics">
  <ul class="myul">
  </ul>
  </div>
  <div>
  <p>
    <a href="javascript:void(0);" onclick="uploadpara();">上传</a>|
    <a href="javascript:$('#uploadify').uploadifyClearQueue()">取消上传</a>
  </p>
  </div>
  </div>
  </form>
</body>
</html>
<%@ WebHandler Language="C#" Class="UploadHandler" %>
using System;
using System.Web;
using System.IO;
/// <summary>
/// UploadHandler文件上传
/// </summary>
public class UploadHandler : IHttpHandler
{
  public void ProcessRequest(HttpContext context)
  {
    context.Response.ContentType = "text/plain";
    context.Response.Charset = "utf-8";
    string type = context.Request["type"];
    if (type=="add")
    {
      HttpPostedFile file = context.Request.Files["Filedata"];
      string uploadPath = HttpContext.Current.Server.MapPath(@context.Request["folder"]);
      string name = context.Request.Params["name"]; //获取传递的参数
      string albums = context.Request.Params["albums"];
      if (file != null)
      {
        if (!Directory.Exists(uploadPath))
        {
          Directory.CreateDirectory(uploadPath);
        }
        file.SaveAs(Path.Combine(uploadPath, file.FileName));
        context.Response.Write(@context.Request["folder"] + file.FileName);
      }
      else
      {
        context.Response.Write("");
      }
    }
    else if (type == "del")
    {
      string picurl = context.Request["picurl"];
      try
      {
        File.Delete(context.Server.MapPath(picurl));
        context.Response.Write(picurl);
      }
      catch
      {
        context.Response.Write("");
      }
    }
    else
    { }
  }
  public bool IsReusable
  {
    get
    {
      return false;
    }
  }
}

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
qTip2 精致的基于jQuery提示信息插件
Feb 17 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
Oct 10 Javascript
node.js中的buffer.length方法使用说明
Dec 14 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
Aug 04 Javascript
jquery对所有input type=text的控件赋值实现方法
Dec 02 Javascript
js+css3实现旋转效果
Jan 20 Javascript
jquery获取select,option所有的value和text的实例
Mar 06 Javascript
node.js中http模块和url模块的简单介绍
Oct 06 Javascript
vue.js系列中的vue-fontawesome使用
Feb 10 Javascript
vue多页面开发和打包正确处理方法
Apr 20 Javascript
vue在手机中通过本机IP地址访问webApp的方法
Aug 15 Javascript
Vue基本指令实例图文讲解
Feb 25 Vue.js
JS与Ajax Get和Post在使用上的区别实例详解
Jun 08 #Javascript
浅谈JS原生Ajax,GET和POST
Jun 08 #Javascript
原生 JS Ajax,GET和POST 请求实例代码
Jun 08 #Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
Jun 08 #Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
Jun 08 #Javascript
JavaScript中两个字符串的匹配
Jun 08 #Javascript
AngularJs学习第五篇从Controller控制器谈谈$scope作用域
Jun 08 #Javascript
You might like
php下将图片以二进制存入mysql数据库中并显示的实现代码
2010/05/27 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
2010/11/01 PHP
PHP实现邮件群发的源码
2013/06/18 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
PHP实现生成推广海报的方法详解
2018/03/14 PHP
js 单引号 传递方法
2009/06/22 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
js表单提交和submit提交的区别实例分析
2015/12/10 Javascript
jQuery的ajax和遍历数组json实例代码
2016/08/01 Javascript
微信小程序报错:this.setData is not a function的解决办法
2017/09/27 Javascript
简单的三步vuex入门
2018/05/20 Javascript
详解swipe使用及竖屏页面滚动方法
2018/06/28 Javascript
JavaScript时间日期操作实例小结【5个示例】
2018/12/22 Javascript
vue源码中的检测方法的实现
2019/09/26 Javascript
vue实现在线翻译功能
2019/09/27 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
vue 项目软键盘回车触发搜索事件
2020/09/09 Javascript
Ant Design的Table组件去除
2020/10/24 Javascript
[02:03]完美世界DOTA2联赛10月30日赛事集锦
2020/10/31 DOTA
python生成器的使用方法
2013/11/21 Python
Python2中文处理纪要的实现方法
2018/03/10 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
让代码变得更易维护的7个Python库
2018/10/09 Python
Python虚拟环境的创建和包下载过程分析
2020/06/19 Python
CSS3 text shadow字体阴影效果
2016/01/08 HTML / CSS
html标签之Object和EMBED标签详解
2013/07/04 HTML / CSS
卡西欧G-SHOCK英国官网: 防水防震手表
2018/01/08 全球购物
优秀通讯员事迹材料
2014/01/28 职场文书
小学班主任评语大全
2014/04/23 职场文书
社区志愿者培训方案
2014/06/10 职场文书
考试没考好检讨书(精选篇)
2014/11/16 职场文书
员工离职通知函
2015/04/25 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书
python实现的web监控系统
2021/04/27 Python