下面是多文件上传的代码:
example1.aspx页面: <%@ Page language="c#" AutoEventWireup="true" CodeFile="example1.aspx.cs" Inherits="czwExample._Default" %>
<html>
<head>
<title>::: UPLOAD SAMPLE ::: </title>
</head>
<body>
<center>
<form id="UPLOAD" method="post" runat="server" enctype="multipart/form-data">
<h3>上传多个文件的示例</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="12px">上传图片</asp:LinkButton> <strong>::
</strong> <a href="JavaScript:document.forms[0].reset()" id="LinkButton2" style="FONT-WEIGHT:bold;FONT-SIZE:12px;FONT-FAMILY:verdana">重置</A> <strong>::</strong><p>
</p>
<asp:Label id="Label1" runat="server" Font-Names="verdana" Font-Bold="True" Font-Size="12px" Width="400px" BorderStyle="None" BorderColor="White"></asp:Label><p>
<p> </p>
</form>
</center>
</body>
</html> example1.aspx.cs页面: using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Text;
using System.IO;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Configuration;namespace czwExample
{
public partial class _Default : System.Web.UI.Page
{ private void Page_Load(System.Object sender, System.EventArgs e)
{
if ( this.IsPostBack )
this.SaveImages();
} private bool SaveImages() {
//文件上传时循环执行
HttpFileCollection _files = HttpContext.Current.Request.Files; //发送给浏览器的信息
StringBuilder _message = new StringBuilder("Files Uploaded:<br>"); try{
for(int _iFile = 0; _iFile < _files.Count; _iFile ++ ){ // 检查上传文件是否为gif或jpg HttpPostedFile _postedFile = _files[_iFile];
String _fileName, _fileExtension , tempFileName;
//Random random = new Random();
//DateTime dt = DateTime.Now;
//tempFileName = String.Format("{0}{1}{2}{3}{4}{5}{6}{7}",dt.Year,dt.Month,dt.Day,dt.Hour,dt.Minute,dt.Second,dt.Millisecond,random.Next(100,1000));
tempFileName = _iFile.ToString();
Response.Write(tempFileName + "<br>"); _fileName = Path.GetFileName(_postedFile.FileName); _fileExtension = Path.GetExtension(_fileName);
//_fileName = tempFileName + _fileExtension; if ( _fileExtension == ".gif" ){
//保存文件到指定文件夹
_postedFile.SaveAs(HttpContext.Current.Request.MapPath("./gifs/") + _fileName);
_message.Append(_fileName + "<BR>"); }
else if ( _fileExtension == ".jpg" ){ //保存文件到指定文件夹
_postedFile.SaveAs(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>");
}
} //for结束 Label1.Text = _message.ToString();
return true;
}catch ( System.Exception Ex ){
Label1.Text = Ex.Message ;
return false;
}
} //SaveImages结束
#region Web Form Designer generated code
override protected void OnInit(System.EventArgs e){
InitializeComponent();
base.OnInit(e);
} private void InitializeComponent(){
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
} //_Default类结束
}可以实现上传,但是example1.aspx.cs页面当中的 SaveImages()方法执行了两次,请哪位高手不吝赐教,十分感谢!
example1.aspx页面: <%@ Page language="c#" AutoEventWireup="true" CodeFile="example1.aspx.cs" Inherits="czwExample._Default" %>
<html>
<head>
<title>::: UPLOAD SAMPLE ::: </title>
</head>
<body>
<center>
<form id="UPLOAD" method="post" runat="server" enctype="multipart/form-data">
<h3>上传多个文件的示例</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="12px">上传图片</asp:LinkButton> <strong>::
</strong> <a href="JavaScript:document.forms[0].reset()" id="LinkButton2" style="FONT-WEIGHT:bold;FONT-SIZE:12px;FONT-FAMILY:verdana">重置</A> <strong>::</strong><p>
</p>
<asp:Label id="Label1" runat="server" Font-Names="verdana" Font-Bold="True" Font-Size="12px" Width="400px" BorderStyle="None" BorderColor="White"></asp:Label><p>
<p> </p>
</form>
</center>
</body>
</html> example1.aspx.cs页面: using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Text;
using System.IO;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Configuration;namespace czwExample
{
public partial class _Default : System.Web.UI.Page
{ private void Page_Load(System.Object sender, System.EventArgs e)
{
if ( this.IsPostBack )
this.SaveImages();
} private bool SaveImages() {
//文件上传时循环执行
HttpFileCollection _files = HttpContext.Current.Request.Files; //发送给浏览器的信息
StringBuilder _message = new StringBuilder("Files Uploaded:<br>"); try{
for(int _iFile = 0; _iFile < _files.Count; _iFile ++ ){ // 检查上传文件是否为gif或jpg HttpPostedFile _postedFile = _files[_iFile];
String _fileName, _fileExtension , tempFileName;
//Random random = new Random();
//DateTime dt = DateTime.Now;
//tempFileName = String.Format("{0}{1}{2}{3}{4}{5}{6}{7}",dt.Year,dt.Month,dt.Day,dt.Hour,dt.Minute,dt.Second,dt.Millisecond,random.Next(100,1000));
tempFileName = _iFile.ToString();
Response.Write(tempFileName + "<br>"); _fileName = Path.GetFileName(_postedFile.FileName); _fileExtension = Path.GetExtension(_fileName);
//_fileName = tempFileName + _fileExtension; if ( _fileExtension == ".gif" ){
//保存文件到指定文件夹
_postedFile.SaveAs(HttpContext.Current.Request.MapPath("./gifs/") + _fileName);
_message.Append(_fileName + "<BR>"); }
else if ( _fileExtension == ".jpg" ){ //保存文件到指定文件夹
_postedFile.SaveAs(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>");
}
} //for结束 Label1.Text = _message.ToString();
return true;
}catch ( System.Exception Ex ){
Label1.Text = Ex.Message ;
return false;
}
} //SaveImages结束
#region Web Form Designer generated code
override protected void OnInit(System.EventArgs e){
InitializeComponent();
base.OnInit(e);
} private void InitializeComponent(){
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
} //_Default类结束
}可以实现上传,但是example1.aspx.cs页面当中的 SaveImages()方法执行了两次,请哪位高手不吝赐教,十分感谢!
this.SaveImages();我说,干嘛不放到按钮onclick事件中?
this.SaveImages();放到LinkButton的Click事件里试试
this.SaveImages();不要这2句,要这2句干什么!!!