知识大全 C#用jquery多个文件上传

Posted

篇首语:再长的路,一步步也能走完;再短的路,不迈开双脚也无法到达。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#用jquery多个文件上传相关的知识,希望对你有一定的参考价值。

C#用jquery多个文件上传  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   <%@ Page Language= C# AutoEventWireup= true CodeBehind= Default aspx cs Inherits= UploadFile _Default %>

  

   <!DOCTYPE PUBLIC //W C//DTD XHTML Transitional//EN transitional dtd >

  

   < xmlns= >

   <head runat= server >

        <title>Upload Multiple Files in ASP NET Using jQuery</title>

            <script src= Scripts/jquery js type= text/javascript ></script>

            <script src= Scripts/jquery MultiFile js type= text/javascript ></script>

   </head>

   <body>

        <form id= form runat= server >

        <div>

            <asp:TextBox ID= TextBox runat= server Height= px TextMode= MultiLine ></asp:TextBox>

            <asp:FileUpload ID= FileUpload runat= server CssClass= multi /><asp:Button ID= btnUpload runat= server Text= Upload onclick= btnUpload_Click />

        </div>

  

        </form>

   </body>

   </>

  服务器端代码

   using System;

   using System Data;

   using System Configuration;

   using System Collections;

   using System Web;

   using System Web Security;

   using System Web UI;

   using System Web UI WebControls;

   using System Web UI WebControls WebParts;

   using System Web UI HtmlControls;

   using System IO;

  

   namespace UploadFile

  

        /// <summary>

        /// 多个文件上传

        /// 涂聚文 QQ:  

        /// </summary>

        public partial class _Default : System Web UI Page

       

  

            string fi;

            protected void Page_Load(object sender EventArgs e)

           

  

           

            /// <summary>

            ///

            /// </summary>

            /// <param name= sender ></param>

            /// <param name= e ></param>

            protected void btnUpload_Click(object sender EventArgs e)

           

                try

               

                    //多个文件

  

                    // Get the HttpFileCollection

                    HttpFileCollection hfc = Request Files;

                    for (int i = ; i < hfc Count; i++)

                   

  

                        HttpPostedFile hpf = hfc[i];

                        if (hpf ContentLength > )

                       

                            string name=System IO Path GetFileName(hpf FileName);

                            if (name Contains( ))

                           

                                System Random srd = new Random();

                                int srdName = srd Next( );

                                name = name Substring(name LastIndexOf( ) name Length name LastIndexOf( ));

                                name = DateTime Now ToString( yyyyMMddhhmmss ) + srdName ToString() + name;

                           

                           // FileUpload PostedFile SaveAs(Server MapPath( upimge/ ) + name);

                            if (hfc Count == )

                           

                                fi = name;

                           

                            if (hfc Count!= )

                           

                                //file += name;

                                fi += name+ ; ;

                           

                            //创造年 月 日的文件夹

                            //string year = DateTime Now Year ToString();

                            //string month = DateTime Now Month ToString();

                            //string day = DateTime Now Day ToString();

                            //if (Directory Exists( upload + \\\\ + year) == false)

                            //

                            //    Directory CreateDirectory( upload + \\\\ + year);

                            //

                            //if (Directory Exists( upload + \\\\ + year + \\\\ + month) == false)

                            //

                            //    Directory CreateDirectory( upload + \\\\ + year + \\\\ + month);

                            //

                            //if (Directory Exists( upload + \\\\ + year + \\\\ + month + \\\\ + day) == false)

                            //

                            //    Directory CreateDirectory( upload + \\\\ + year + \\\\ + month + \\\\ + day);

                            //

                            //保存地址this TextBox Text = / + year + / + month + / + day + / +name;

                            hpf SaveAs(Server MapPath( upload ) + \\\\ + name);

                            //hpf SaveAs(Server MapPath( upload ) + \\\\ + System IO Path GetFileName(hpf FileName));

                           // Response Write( <b>File: </b> + hpf FileName +   <b>Size:</b> +

                                //hpf ContentLength +   <b>Type:</b> + hpf ContentType + Uploaded Successfully <br/> );

                       

                        this TextBox Text = fi;

                   

  

               

                catch (Exception ex)

               

  

               

           

            /// <summary>

            ///

            /// </summary>

            /// <param name= jsContent ></param>

            //protected void WriteJs(string jsContent)

            //

  

            //    ClientScript RegisterStartupScript(this GetType() writejs <script type= text/javascript > + jsContent + </script> );

            //

  

  

       

  

  jquery MultiFile js代码

   /*

     ### jQuery Multiple File Upload Plugin v ###

     * Home: file upload/

     * Code: multifile plugin/

     *

     * Dual licensed under the MIT and GPL licenses:

     *   license php

     *  

     ###

   */

  

   /*# AVOID COLLISIONS #*/

   ;if(window jQuery) (function($)

   /*# AVOID COLLISIONS #*/

  

        // plugin initialization

        $ fn MultiFile = function(options)

            if(this length== ) return this; // quick fail

  

            // Handle API methods

            if(typeof arguments[ ]== string )

                // Perform API methods on individual elements

                if(this length> )

                    var args = arguments;

                    return this each(function()

                        $ fn MultiFile apply($(this) args);

        );

                ;

                // Invoke API method handler

                $ fn MultiFile[arguments[ ]] apply(this $ makeArray(arguments) slice( ) || []);

                // Quick exit

                return this;

            ;

  

            // Initialize options for this call

            var options = $ extend(

                /* new object */

                $ fn MultiFile options/* default options */

                options || /* just in time options */

            );

  

            // Empty Element Fix!!!

            // this code will automatically intercept native form submissions

            // and disable empty file elements

            $( form )

            not( MultiFile intercepted )

            addClass( MultiFile intercepted )

            submit($ fn MultiFile disableEmpty);

  

            //###

            // utility method to integrate this plugin with others

            if($ fn MultiFile options autoIntercept)

                $ fn MultiFile intercept( $ fn MultiFile options autoIntercept /* array of methods to intercept */ );

                $ fn MultiFile options autoIntercept = null; /* only run this once */

            ;

  

            // loop through each matched element

            this

             not( MultiFile applied )

                addClass( MultiFile applied )

            each(function()

                //#####################################################################

                // MAIN PLUGIN FUNCTIONALITY START

                //#####################################################################

  

           // BUG FIX:

           // variable group_count would repeat itself on multiple calls to the plugin

           // this would cause a conflict with multiple elements

           // changes scope of variable to global so id will be unique over n calls

           window MultiFile = (window MultiFile || ) + ;

           var group_count = window MultiFile;

  

           // Copy parent attributes Thanks to Jonas Wagner

           // we will use this one to create new input elements

           var MultiFile = e:this E:$(this) clone:$(this) clone();

  

           //===

  

           //# USE CONFIGURATION

           if(typeof options== number ) options = max:options;

           var o = $ extend(

            $ fn MultiFile options

            options ||

                           (tadata? tadata(): (ta?MultiFile E data():null)) || /* metadata options */

                                    /* internals */

           );

           // limit number of files that can be selected?

           if(!(o max> ) /*IsNull(MultiFile max)*/)

            o max = MultiFile E attr( maxlength );

            if(!(o max> ) /*IsNull(MultiFile max)*/)

             o max = (String(MultiFile e className match(/\\b(max|limit)\\ ([ ]+)\\b/gi) || [ ]) match(/[ ]+/gi) || [ ])[ ];

             if(!(o max> )) o max = ;

             else           o max = String(o max) match(/[ ]+/gi)[ ];

           

           ;

           o max = new Number(o max);

           // limit extensions?

           o accept = o accept || MultiFile E attr( accept ) || ;

           if(!o accept)

            o accept = (MultiFile e className match(/\\b(accept\\ [\\w\\|]+)\\b/gi)) || ;

            o accept = new String(o accept) replace(/^(accept|ext)\\ /i );

           ;

  

           //===

  

           // APPLY CONFIGURATION

                                $ extend(MultiFile o || );

           MultiFile STRING = $ extend( $ fn MultiFile options STRING MultiFile STRING);

  

           //===

  

           //#########################################

           // PRIVATE PROPERTIES/METHODS

           $ extend(MultiFile

            n: // How many elements are currently selected?

            slaves: [] files: []

            instanceKey: MultiFile e id || MultiFile +String(group_count) // Instance Key?

            generateID: function(z) return MultiFile instanceKey + (z> ? _F +String(z): );

            trigger: function(event element)

             var handler = MultiFile[event] value = $(element) attr( value );

             if(handler)

              var returnValue = handler(element value MultiFile);

              if( returnValue!=null ) return returnValue;

            

             return true;

           

           );

  

           //===

  

           // Setup dynamic regular expression for extension validation

           // thanks to John Paul Bader: dynamic regular expresions/

           if(String(MultiFile accept) length> )

                                    MultiFile accept = MultiFile accept replace(/\\W+/g | ) replace(/^\\W|\\W$/g );

            MultiFile rxAccept = new RegExp( \\\\ ( +(MultiFile accept?MultiFile accept: )+ )$ gi );

           ;

  

           //===

  

           // Create wrapper to hold our file list

           MultiFile wrapID = MultiFile instanceKey+ _wrap ; // Wrapper ID?

           MultiFile E wrap( <div class= MultiFile wrap id= +MultiFile wrapID+ ></div> );

           MultiFile wrapper = $( # +MultiFile wrapID+ );

  

           //===

  

           // MultiFile MUST have a name default: file [] file [] file []

           MultiFile e name = MultiFile e name || file + group_count + [] ;

  

           //===

  

                                if(!MultiFile list)

                                    // Create a wrapper for the list

                                    // * OPERA BUG: NO_MODIFICATION_ALLOWED_ERR ( list is a read only property)

                                    // this change allows us to keep the files in the order they were selected

                                    MultiFile wrapper append( <div class= MultiFile list id= +MultiFile wrapID+ _list ></div> );

                                    MultiFile list = $( # +MultiFile wrapID+ _list );

                                ;

           MultiFile list = $(MultiFile list);

  

           //===

  

           // Bind a new element

           MultiFile addSlave = function( slave slave_count )

                                    //if(nsole) console log( MultiFile addSlave slave_count);

  

            // Keep track of how many elements have been displayed

            MultiFile n++;

            // Add reference to master element

            slave MultiFile = MultiFile;

  

                                    // BUG FIX:

                                    // Clear identifying properties from clones

                                    if(slave_count> ) slave id = slave name = ;

  

            // Define element s ID and name (upload ponents need this!)

            //slave id = slave id || MultiFile generateID(slave_count);

                                    if(slave_count> ) slave id = MultiFile generateID(slave_count);

                                    //FIX for: multifile plugin/issues/detail?id=

  

            // Apr : New customizable naming convention (see url below)

            // dev/browse_frm/thread/ c e b f #

            slave name = String(MultiFile namePattern

             /*master name*/ replace(/\\$name/gi $(MultiFile clone) attr( name ))

             /*master id  */ replace(/\\$id/gi   $(MultiFile clone) attr( id ))

             /*group count*/ replace(/\\$g/gi    group_count)//(group_count> ?group_count: ))

             /*slave count*/ replace(/\\$i/gi    slave_count)//(slave_count> ?slave_count: ))

            );

  

            // If we ve reached maximum number disable input slave

            if( (MultiFile max > ) && ((MultiFile n ) > (MultiFile max)) )// // MultiFile n Starts at so subtract to find true count

             slave disabled = true;

            //;

  

            // Remember most recent slave

            MultiFile current = MultiFile slaves[slave_count] = slave;

  

                                    // We ll use jQuery from now on

                                    slave = $(slave);

  

            // Clear value

            slave val( ) attr( value )[ ] value = ;

  

                                    // Stop plugin initializing on slaves

                                    slave addClass( MultiFile applied );

  

            // Triggered when a file is selected

            slave change(function()

              //if(nsole) console log( MultiFile slave change slave_count);

  

              // Lose focus to stop IE firing onchange again

              $(this) blur();

  

              //# Trigger Event! onFileSelect

              if(!MultiFile trigger( onFileSelect this MultiFile)) return false;

              //# End Event!

  

              //# Retrive value of selected file from element

              var ERROR = v = String(this value || /* attr( value)*/);

  

              // check extension

              if(MultiFile accept && v && !v match(MultiFile rxAccept))//

                ERROR = MultiFile STRING denied replace( $ext String(v match(/\\ \\w $/gi)));

               //

              //;

  

              // Disallow duplicates

                                            for(var f in MultiFile slaves)//

               if(MultiFile slaves[f] && MultiFile slaves[f]!=this)//

                                              //console log(MultiFile slaves[f] MultiFile slaves[f] value);

                if(MultiFile slaves[f] value==v)//

                 ERROR = MultiFile STRING duplicate replace( $file v match(/[^\\/\\\\]+$/gi));

                //;

               //;

              //;

  

              // Create a new file input element

              var newEle = $(MultiFile clone) clone();// Copy parent attributes Thanks to Jonas Wagner

              //# Let s remember which input we ve generated so

              // we can disable the empty ones before submission

              // See:

              newEle addClass( MultiFile );

  

              // Handle error

              if(ERROR!= )

                // Handle error

                MultiFile error(ERROR);

  

                // : BUG FIX Thanks to Adrian Wr骲el <adrian [dot] wrobel [at] >

                // Ditch the trouble maker and add a fresh new element

                MultiFile n ;

                MultiFile addSlave(newEle[ ] slave_count);

                slave parent() prepend(newEle);

                slave remove();

                return false;

              ;

  

              // Hide this element (NB: display:none is evil!)

              $(this) css( position: absolute top: px );

  

              // Add new element to the form

              slave after(newEle);

  

              // Update list

              MultiFile addToList( this slave_count );

  

              // Bind functionality

              MultiFile addSlave( newEle[ ] slave_count+ );

  

              //# Trigger Event! afterFileSelect

              if(!MultiFile trigger( afterFileSelect this MultiFile)) return false;

              //# End Event!

  

            ); // slave change()

  

                                    // Save control to element

                                    $(slave) data( MultiFile MultiFile);

  

           ;// MultiFile addSlave

           // Bind a new element

  

  

  

           // Add a new file to the list

           MultiFile addToList = function( slave slave_count )

            //if(nsole) console log( MultiFile addToList slave_count);

  

            //# Trigger Event! onFileAppend

            if(!MultiFile trigger( onFileAppend slave MultiFile)) return false;

            //# End Event!

  

            // Create label elements

            var

             r = $( <div class= MultiFile label ></div> )

             v = String(slave value || /* attr( value)*/)

             a = $( <span class= MultiFile title title= +MultiFile STRING selected replace( $file v)+ > +MultiFile STRING file replace( $file v match(/[^\\/\\\\]+$/gi)[ ])+ </span> )

             b = $( <a class= MultiFile remove # +MultiFile wrapID+ > +MultiFile STRING remove+ </a> );

  

            // Insert label

            MultiFile list append(

             r append(b a)

            );

  

            b

                                    click(function()

  

              //# Trigger Event! onFileRemove

              if(!MultiFile trigger( onFileRemove slave MultiFile)) return false;

              //# End Event!

  

              MultiFile n ;

              MultiFile current disabled = false;

  

              // Remove element remove label point to current

                                            MultiFile slaves[slave_count] = null;

                                            $(slave) remove();

                                            $(this) parent() remove();

  

              // Show most current element again (move into view) and clear selection

              $(MultiFile current) css( position: top: );

                                            $(MultiFile current) reset() val( ) attr( value )[ ] value = ;

  

              //# Trigger Event! afterFileRemove

              if(!MultiFile trigger( afterFileRemove slave MultiFile)) return false;

              //# End Event!

  

              return false;

            );

  

            //# Trigger Event! afterFileAppend

            if(!MultiFile trigger( afterFileAppend slave MultiFile)) return false;

            //# End Event!

  

           ; // MultiFile addToList

           // Add element to selected files list

  

  

  

           // Bind functionality to the first element

           if(!MultiFile MultiFile) MultiFile addSlave(MultiFile e );

  

           // Increment control count

           //MultiFile I++; // using window MultiFile

           MultiFile n++;

  

                                // Save control to element

                                MultiFile E data( MultiFile MultiFile);

  

  

                //#####################################################################

                // MAIN PLUGIN FUNCTIONALITY END

                //#####################################################################

            ); // each element

        ;

  

        /* */

  

        /*

            ### Core functionality and API ###

        */

        $ extend($ fn MultiFile

      /**

       * This method removes all selected files

       *

       * Returns a jQuery collection of all affected elements

       *

       * @name reset

       * @type jQuery

       * @cat Plugins/MultiFile

       * @author Diego A ()

       *

       * @example $ fn MultiFile reset();

       */

      reset: function()

                var settings = $(this) data( MultiFile );

                //if(settings) settings wrapper find( a MultiFile remove ) click();

                if(settings) settings list find( a MultiFile remove ) click();

       return $(this);

     

  

  

      /**

       * This utility makes it easy to disable all empty file elements in the document before submitting a form

       * It marks the affected elements so they can be easily re enabled after the form submission or validation

       *

       * Returns a jQuery collection of all affected elements

       *

       * @name disableEmpty

       * @type jQuery

       * @cat Plugins/MultiFile

       * @author Diego A ()

       *

       * @example $ fn MultiFile disableEmpty();

       * @param String class (optional) A string specifying a class to be applied to all affected elements Default: mfD

       */

      disableEmpty: function(klass) klass = String(klass || mfD );

       var o = [];

       $( input:file ) each(function() if($(this) val()== ) o[o length] = this; );

       return $(o) each(function() this disabled = true ) addClass(klass);

     

  

  

     /**

      * This method re enables empty file elements that were disabled (and marked) with the $ fn MultiFile disableEmpty method

      *

      * Returns a jQuery collection of all affected elements

      *

      * @name reEnableEmpty

      * @type jQuery

      * @cat Plugins/MultiFile

      * @author Diego A ()

      *

      * @example $ fn MultiFile reEnableEmpty();

      * @param String klass (optional) A string specifying the class that was used to mark affected elements Default: mfD

      */

      reEnableEmpty: function(klass) klass = String(klass || mfD );

       return $( input:file +klass) removeClass(klass) each(function() this disabled = false );

     

  

  

     /**

      * This method will intercept other jQuery plugins and disable empty file input elements prior to form submission

      *

  

      * @name intercept

      * @cat Plugins/MultiFile

      * @author Diego A ()

      *

      * @example $ fn MultiFile intercept();

      * @param Array methods (optional) Array of method names to be intercepted

      */

      intercepted:

      intercept: function(methods context args)

       var method value; args = args || [];

       if(nstructor toString() indexOf( Array )< ) args = [ args ];

       if(typeof(methods)== function )

        $ fn MultiFile disableEmpty();

        value = methods apply(context || window args);

                    //SEE multifile plugin/issues/detail?id=

                    setTimeout(function() $ fn MultiFile reEnableEmpty() );

        return value;

       ;

       if(nstructor toString() indexOf( Array )< ) methods = [methods];

       for(var i= ;i<methods length;i++)

        method = methods[i]+ ; // make sure that we have a STRING

        if(method) (function(method) // make sure that method is ISOLATED for the interception

         $ fn MultiFile intercepted[method] = $ fn[method] || function();

         $ fn[method] = function()

          $ fn MultiFile disableEmpty();

          value = $ fn MultiFile intercepted[method] apply(this arguments);

                            //SEE multifile plugin/issues/detail?id=

          setTimeout(function() $ fn MultiFile reEnableEmpty() );

          return value;

         ; // interception

        )(method); // MAKE SURE THAT method IS ISOLATED for the interception

       ;// for each method

     

     );

  

        /* */

  

        /*

            ### Default Settings ###

            eg : You can override default control like this:

            $ fn MultiFile options accept = gif|jpg ;

        */

        $ fn MultiFile options = //$ extend($ fn MultiFile options:

            accept: // accepted file extensions

            max:     // maximum number of selectable files

  

            // name to use for newly created elements

            namePattern: $name // same name by default (which creates an array)

  

            // STRING: collection lets you show messages in different languages

            STRING:

                remove: x

                denied: You cannot select a $ext file \\nTry again

                file: $file

                selected: File selected: $file

                duplicate: This file has already been selected:\\n$file

           

  

            // name of methods that should be automcatically intercepted so the plugin can disable

            // extra file elements that are empty before execution and automatically re enable them afterwards

      autoIntercept: [ submit ajaxSubmit ajaxForm validate /* array of methods to intercept */ ]

  

            // error handling function

            error: function(s)

                /*

                ERROR! blockUI is not currently working in IE

                if($ blockUI)

                    $ blockUI(

                        message: s replace(/\\n/gi <br/> )

                        css:

                            border: none padding: px size: pt

                            backgroundColor: # color: #fff

                            opacity: webkit border radius : px moz border radius : px

                       

                    );

                    window setTimeout($ unblockUI );

               

                else//// save a byte!

                */

                 alert(s);

                //// save a byte!

           

     ; // );

  

        /* */

  

        /*

            ### Additional Methods ###

            Required functionality outside the plugin s scope

        */

  

        // Native input reset method because this alone doesn t always work: $(element) val( ) attr( value )[ ] value = ;

        $ fn reset = function() return this each(function() try this reset(); catch(e) ); ;

  

        /* */

  

        /*

            ### Default implementation ###

            The plugin will attach itself to file inputs

            with the class multi when the page loads

        */

        $(function()

      //$( input:file multi ) MultiFile();

      $( input[type=file] multi ) MultiFile();

     );

  

  

  

   /*# AVOID COLLISIONS #*/

   )(jQuery);

   /*# AVOID COLLISIONS #*/

  

cha138/Article/program/net/201311/13435

相关参考

知识大全 如何实现Jquery的LigerUI文件上传

如何实现Jquery的LigerUI文件上传  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一在

知识大全 解析Jquery的LigerUI如何实现文件上传

解析Jquery的LigerUI如何实现文件上传  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本篇

知识大全 C#实现按日期命名上传文件代码

C#实现按日期命名上传文件代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Struts上传多个文件的例子

J2EE综合:Struts上传多个文件的例子  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 用cos进行文件上传

  在jsp中实现文件上传可用的类库很多比如有著名的jspsmart公司SmartUploadstruts里面也有我这里说说cos它是OReilly公司的OReilly的图书是很错的这个上传的组件也做

知识大全 用JSP实现上传文件的两种方法

用JSP实现上传文件的两种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  以前用cos作文件

知识大全 jquery.blockUI.js实现上传滚动等待效果

jquery.blockUI.js实现上传滚动等待效果  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码

jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们

知识大全 ASP+上传文件语法

ASP+上传文件语法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这里有一个怎样用ASP+上传

知识大全 nginx+php上传大文件解决办法

最常用的方法是通过设置nginx的client_max_body_size解决nginx+php上传大文件主要是设置上传文件大小和php脚本运行时长即可用nginx来做webserver的时上传大文件