jQuery.Uploadify插件實(shí)現(xiàn)帶進(jìn)度條的批量上傳功能

字號(hào):


    本文實(shí)例講述了jQuery.Uploadify插件實(shí)現(xiàn)帶進(jìn)度條的批量上傳功能。分享給大家供大家參考,具體如下:
    代碼如下:
    <%@ 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上傳帶進(jìn)度條,且多參數(shù)</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', //處理文件上傳的后臺(tái)腳本的路徑
            'cancelImg': 'js/jquery.uploadify-v2.1.4/cancel.png',
            'buttonText': 'Select Image',
            'folder': 'UploadFile/<% = DateTime.Now.ToString("yyyyMMdd") %>/', //上傳文件夾的路徑按20130416
            'queueID': 'fileQueue', //頁(yè)面中,你想要用來作為文件隊(duì)列的元素的id
            'auto': false, //當(dāng)文件被添加到隊(duì)列時(shí),自動(dòng)上傳
            'multi': true, //設(shè)置為true將允許多文件上傳
            'fileExt': '*.jpg;*.gif;*.png', //允許上傳的文件后綴
            'queueSizeLimit': 5,
            'fileDesc': 'Web Image Files (.JPG, .GIF, .PNG)', //在瀏覽窗口底部的文件類型下拉菜單中顯示的文本
            'sizeLimit': 1024000, //上傳文件的大小限制,單位為字節(jié) 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=\"點(diǎn)擊刪除\" src=\"Images/delete.gif\" onclick=\"delImage(\'" + response + "\');\" />";
              html += "  </div>";
              html += "  </li>";
              $("#pics").append(html);
            },
            'onAllComplete': function (event, data) { //當(dāng)上傳隊(duì)列中的所有文件都完成上傳時(shí)觸發(fā)
              //alert(data.filesUploaded + ' 個(gè)文件上傳成功!');
              $("#pics").fadeIn();
            }
          });
        });
        function uploadpara() {
          //自定義傳遞參數(shù)
          $('#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: '恢復(fù)失敗'
              });
            }
          });
        }
        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>
      </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"]; //獲取傳遞的參數(shù)
          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;
        }
      }
    }
    希望本文所述對(duì)大家jQuery程序設(shè)計(jì)有所幫助。