当前位置:编程学习 > C#/ASP.NET >>

一次同时上传多个文件

答案:下面我将为大家讲解如何同时上传多个文件
我们在页面中添加5个<input type=file>上传的类型只限定在.gif和.jpg两种,并根据不同的类型放入不同的文件夹中。
我先给出upload.aspx源代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML>
<HEAD>
<title>::: UPLOAD SAMPLE ::: </title>
</HEAD>
<body>
<center>
<form id="UPLOAD" method="post" runat="server" enctype="multipart/form-data">
<h3>Multiple File Upload Example</h3>
<P>
<INPUT type="file" runat="server" size="50" ID="File1" NAME="File1"></P>
<P>
<INPUT type="file" runat="server" size="50" ID="File2" NAME="File2"></P>
<P>
<INPUT type="file" runat="server" size="50" ID="File3" NAME="File3"></P>
<P>
<INPUT type="file" runat="server" size="50" ID="File4" NAME="File4"></P>
<P>
<INPUT type="file" runat="server" size="50" ID="File5" NAME="File5"></P>
<P><STRONG>::  </STRONG>
<asp:LinkButton id="LinkButton1" runat="server" Font-Names="Verdana" Font-Bold="True" Font-Size="XX-Small">Upload Images</asp:LinkButton>  <STRONG>::
</STRONG>  <A href=>Reset Form</A> <STRONG>::</STRONG></P>
<P>
<asp:Label id="Label1" runat="server" Font-Names="verdana" Font-Bold="True" Font-Size="XX-Small" Width="400px" BorderStyle="None" BorderColor="White"></asp:Label></P>
<P> </P>
</form>
</center>
</body>
</HTML>
Update.aspx.cs 源代码
namespace HowTos.MultipleImageUpdate
{
public class UPLOAD : System.Web.UI.Page
{

#region User Defined Code

protected System.Web.UI.WebControls.LinkButton LinkButton1;

protected System.Web.UI.WebControls.Label Label1;

private void Page_Load(System.Object sender, System.EventArgs e)
{
if ( this.IsPostBack )
this.SaveImages();
}

private System.Boolean SaveImages() {
//文件上传时循环执行


System.Web.HttpFileCollection _files = System.Web.HttpContext.Current.Request.Files;

//发送给浏览器的信息
System.Text.StringBuilder _message = new System.Text.StringBuilder("Files Uploaded:<br>");

try
{
for ( System.Int32 _iFile = 0; _iFile < _files.Count; _iFile ++ )
{

// 检查上传文件是否为gif或jpg

System.Web.HttpPostedFile _postedFile = _files[_iFile];
System.String _fileName, _fileExtension;

_fileName = System.IO.Path.GetFileName(
_postedFile.FileName);

_fileExtension = System.IO.Path.GetExtension(
_fileName);

if ( _fileExtension == ".gif" )
{

//保存文件到指定文件夹
_postedFile.SaveAs(
System.Web.HttpContext.Current.Request.MapPath(
"gifs/") + _fileName);
_message.Append(_fileName + "<BR>");

}
else if ( _fileExtension == ".jpg" )
{

//保存文件到指定文件夹
_postedFile.SaveAs(
System.Web.HttpContext.Current.Request.MapPath(
"jpgs/") + _fileName);
_message.Append(_fileName + "<BR>");

}
else {

_message.Append(_fileName + " <font color=\"red\">failed!! Only .gif and .jpg images allowed!</font> <BR>");

}

}

Label1.Text = _message.ToString();
return true;
}
catch ( System.Exception Ex )
{

Label1.Text = Ex.Message ;
return false;

}

}
#endregion

#region Web Form Designer generated code
override protected void OnInit(System.EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}


还有vb.net代码但是我将不做解释
Public Class UPLOAD
    Inherits System.Web.UI.Page

#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
    Protected WithEvents LinkButton1 As System.Web.UI.WebControls.LinkButton
    Protected WithEvents File1 As System.Web.UI.HtmlControls.HtmlInputFile
    Protected WithEvents File2 As System.Web.UI.HtmlControls.HtmlInputFile
    Protected WithEvents File3 As System.Web.UI.HtmlControls.HtmlInputFile
    Protected WithEvents File4 As System.Web.UI.HtmlControls.HtmlInputFile
    Protected WithEvents File5 As System.Web.UI.HtmlControls.HtmlInputFile

#End Region


    Protected WithEvents Label1 As System.Web.UI.WebControls.Label

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If (Me.IsPostBack) Then Me.SaveImages()
    End Sub

    Private Function SaveImages() As System.Boolean

        

        Dim _files As System.Web.HttpFileCollection = System.Web.HttpContext.Current.Request.Files

        
        Dim _message As New System.Text.StringBuilder("Files Uploaded:<br>")
        Dim _iFile As System.Int32
        Try

            For _iFile = 0 To _files.Count - 1


                
                Dim _postedFile As System.Web.HttpPostedFile = _files(_iFile)
                Dim _fileName, _fileExtension As System.String

                _fileName = System.IO.Path.GetFileName( _
                _posted

上一个:绝对酷,如何解决asp.net中javascript脚本的问题(使用服务器控件执行客户端脚本)
下一个:在datagrid中求和(vb.net,c#)

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,