Implement multi-file upload in ASP.NET

xiaoxiao2021-03-20  238

In previous web applications, uploading files are a very troublesome thing, now there is .NET, file uploads become gently easy. The following example implements a multi-file upload function. You can dynamically add input forms, and the number of files upload is not limited. code show as below:

! MultiUpload.aspx <% @ Page Language = "vb" AutoEventWireup = "false" Codebehind = "MultiUpload.aspx.vb" Inherits = "aspxWeb.MultiUpload"%> Multi-file upload </ title> <script language =" javascript "> Function addFile () {var str = '<input type =" file "size =" 50 "Name =" file "> 'document.getlementByid (' myfile '). InsertAdjacenthtml (" beforeend ", str)} </ script> </ head> <body> <form id =" form1 "method =" post "runat = "Server" enctype = "multipart / form-data"> <center> <ask: label runat = "server" id = "mytitle"> </ ask: Label> <p id = "myfile"> <input type = "file" size = "50" name = "file"> </ p> <p> <input type = "οnclick =" addFile () "> <ask =" addfile ()> <ask: button runat = "Server" text = "Upload" ID = "Upload"> </ ask: button> <input οnclick = "this.form.reset ()" type = "" value = "reset (reset)> </ P> </ center> <p align = "center"> <asp: label id = "strstatus" run at = "server" font-name = "Song" font-bold = "true" font-size = "9pt" width = "500px" borderStyle = "bordercolor ="</p> <p>White "> </ asp: label> </ p> </ form> </ body> </ html> postcode: multiupload.aspx.vbpublic class multiupload inherits system.Web.ui.page protected withevents upload as system.Web .UI.WebControls.Button Protected WithEvents MyTitle As System.Web.UI.WebControls.Label Protected WithEvents strStatus As System.Web.UI.WebControls.Label # Region "Web Form Designer Generated Code" 'This call is required by the Web Form Designer <System.Diagnostics.DebuggerStepThrough ()> Private Sub InitializeComponent () End Sub Private Sub Page_Init (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init 'CODEGEN:. This method call is required by the Web Form Designer 'Do not modify it using the code editor. InitializeComponent () End Sub # End Region Private Sub Page_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load MyTitle.Text = "<h3 > Multi-file upload </ h3> "UPLOAD.TEXT =" Start Upload "if (me.ispostback) Then Me.SaveImages () End Sub Private Funct ion SaveImages () As System.Boolean 'File traversal form elements Dim files As System.Web.HttpFileCollection = System.Web.HttpContext.Current.Request.Files' status Dim strMsg As New System.Text.StringBuilder ( "file upload Sizes: <hr color = red> ") DIM IFILE AS System.Int32 Try for ifile = 0 To FILES.COUNT - 1 'Check File Extension Name DIM PostedFile As System.Web.httppostedFile = Files (ifile) DIM FileName, FileExtension As system.string filename = system.io.path.getFileName (PostedFile.FileName) IFEEXTENSION =</p> <p>System.io.path.getextension (filename) strmsg.append ("Uploaded file type:" PostedFile.conteType.toTRING () "<br>") strmsg.append ("Client File Address:" PostedFile. Filename "<br>") strmsg.append ("Upload file name:" filename "<br>") strmsg.append ("Upload file extension:" fibension "<br> <hr > ") 'Can be saved to different folder postedfile.saveas (System.Web.httpContext.current.request.mappath) end if next strastatus.text = strmsg.tostring () Return True Catch Ex As System.Exception strStatus.Text = Ex.Message Return False End Try End FunctionEnd ClassC # version UpLoad.aspx <% @ Page language = "c #" Codebehind = "UpLoad.aspx.cs" AutoEventWireup = " False "inherits =" Webportal.upload "%> <! doctype html public" - // w3c // DTD html 4.0 transitional // en "> <html> <head> <title> multi-file upload </ title> <script Language = "javascript"> function addfile () {var str = '<input type = "file" size = "50" name = "file">' document.getlement BYID ('myfile'). INSERTADJACENTHTML ("BeForend", Str)} </ script> </ head> <body> <form id = "form1" method = "post" runat = "server" eNctype = "Multipart / Form -data> <div align = "center"> <h3> multi-file upload </ h3> <p id = "myfile> <input type ="</p> <p>File "size =" 50 "name =" file "> </ p> <p> <input type =" οnclick = "addFile ()"> <input οnclick = "this. Form.Reset () "Type =" button "value =" reset (reset)> <ask: button runat = "server" text = "Start Upload" ID = "UploadButton"> </ asp: button> </ P> <p> <asp: label id = "strstatus" runat = "server" font-name = "True" font-bold = "true" font-size = "9pt" width = "500px" border = "none" BorderColor = "White"> </ asp: label> </ p> </ div> </ form> </ body> </ html> UPLOAD.ASPX.CSUSING System; use system.collections; using system.componentmodel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace WebPortal {/ // <summary> /// Upload's summary description.</p> <p>/// multi file upload /// </ summary> public class Upload: System.Web.UI.Page {protected System.Web.UI.WebControls.Button UploadButton; protected System.Web.UI.WebControls.Label strStatus; Private void page_load (object sender, system.eventargs e) {// The user code is placed here to initialize the page if (this.ispostback) this.saveImages ();} private boolean saveimages () {/// 'traversing File form elements HttpFileCollection files = HttpContext.Current.Request.Files; /// 'state information System.Text.StringBuilder strMsg = new System.Text.StringBuilder (); strMsg.Append ( "upload file are: <hr color = Red> "); try {for (int ifile = 0; ifile <files.count; ifile ) {/// 'Check file extension name httppostedfile postedfile = files [ifile]; string filename, fileExtension; filename = system.io. Path.GetFileName; if (fileEname! = ") {FileExtension = system.io.path.Getextension (filename); strmsg.Append (" Uploaded file type: " Po Stedfile.ContentType.toString () "<br>"); strmsg.append ("Client File Address:" PostedFile.FileName <BR> "); strmsg.append (" Upload file name: " Filename "<br>"); strmsg.append ("Extension of Uploaded File:" FileExtension "<br> <hr>"); /// 'can save to different files according to the different files Clip /// Note: You may want to modify anonymous write permission for your folder.</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-130340.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="130340" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.043</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'DXguG7yFSCYiCeAFZs0EVG9afE2QRi7eP6PQPWbF4b26wkoTuqfZPQlPOa7SvT_2BAx_2BxkyD8hrJUIABDcRDj8Ug_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>