前几天在园子里发布了一个图片上传(加水印、缩略图、远程保存)的简单例子 ,很受大家的欢迎,这类再发布一个多文件上传示例源码(默认支持各种类型,包括图片)的例子,可以同时批量上传文件(包括图片)
网上包括园子里有很多多文件上传的例子,但是没有完整的示例代码,本人整理了一下发布出来,这样更直观,希望对大家有所帮助
开发环境VS2005
下载该源码
部分源码
public
partial
class
_Default : System.Web.UI.Page
{
static public ArrayList hif = new ArrayList(); // 保存文件列表
public int filesUploaded = 0; // 上传文件的数量
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 将要上传的文件添加到listbox中
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void AddFile_Click(object sender, EventArgs e)
{
if (Page.IsPostBack == true)
{
hif.Add(FindFile);
FileList.Items.Add(FindFile.PostedFile.FileName);
}
else
{ }
}
/// <summary>
/// 从listbox中删除指定的文件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void RemvFile_Click(object sender, EventArgs e)
{
if (FileList.SelectedIndex == -1)
{
TipInfo.Text = "错误 - 必须指定要删除的文件.";
return;
}
else if (FileList.Items.Count != 0)
{
hif.RemoveAt(FileList.SelectedIndex);
FileList.Items.Remove(FileList.SelectedItem.Text);
TipInfo.Text = "";
}
}
/// <summary>
/// 循环上传listbox中的文件到指定的文件夹下
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void Upload_ServerClick(object sender, System.EventArgs e)
{
string baseLocation = Server.MapPath("UploadFiles/"); // 上传路径
string status = ""; // 上传成功后显示的文件列表
if ((FileList.Items.Count == 0) && (filesUploaded == 0))
{
TipInfo.Text = "错误 - 必须指定要上传的文件.";
return;
}
else
{
foreach (System.Web.UI.HtmlControls.HtmlInputFile HIF in hif)
{
try
{
string fn = System.IO.Path.GetFileName(HIF.PostedFile.FileName);
HIF.PostedFile.SaveAs(baseLocation + fn);
filesUploaded++;
status += fn + "<br>";
}
catch (Exception err)
{
TipInfo.Text = "上传错误 " + baseLocation
+ "<br>" + err.ToString();
}
}
if (filesUploaded == hif.Count)
{
TipInfo.Text = "共上传了 " + filesUploaded + " 个文件。 <br>" + status;
}
hif.Clear();
FileList.Items.Clear();
}
}
}
{
static public ArrayList hif = new ArrayList(); // 保存文件列表
public int filesUploaded = 0; // 上传文件的数量
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 将要上传的文件添加到listbox中
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void AddFile_Click(object sender, EventArgs e)
{
if (Page.IsPostBack == true)
{
hif.Add(FindFile);
FileList.Items.Add(FindFile.PostedFile.FileName);
}
else
{ }
}
/// <summary>
/// 从listbox中删除指定的文件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void RemvFile_Click(object sender, EventArgs e)
{
if (FileList.SelectedIndex == -1)
{
TipInfo.Text = "错误 - 必须指定要删除的文件.";
return;
}
else if (FileList.Items.Count != 0)
{
hif.RemoveAt(FileList.SelectedIndex);
FileList.Items.Remove(FileList.SelectedItem.Text);
TipInfo.Text = "";
}
}
/// <summary>
/// 循环上传listbox中的文件到指定的文件夹下
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void Upload_ServerClick(object sender, System.EventArgs e)
{
string baseLocation = Server.MapPath("UploadFiles/"); // 上传路径
string status = ""; // 上传成功后显示的文件列表
if ((FileList.Items.Count == 0) && (filesUploaded == 0))
{
TipInfo.Text = "错误 - 必须指定要上传的文件.";
return;
}
else
{
foreach (System.Web.UI.HtmlControls.HtmlInputFile HIF in hif)
{
try
{
string fn = System.IO.Path.GetFileName(HIF.PostedFile.FileName);
HIF.PostedFile.SaveAs(baseLocation + fn);
filesUploaded++;
status += fn + "<br>";
}
catch (Exception err)
{
TipInfo.Text = "上传错误 " + baseLocation
+ "<br>" + err.ToString();
}
}
if (filesUploaded == hif.Count)
{
TipInfo.Text = "共上传了 " + filesUploaded + " 个文件。 <br>" + status;
}
hif.Clear();
FileList.Items.Clear();
}
}
}
本文转自 liudao 博客园博客,原文链接:http://www.cnblogs.com/liudao/archive/2007/04/10/706835.html,如需转载请自行联系原作者