前几天在园子里发布了一个图片上传(加水印、缩略图、远程保存)的简单例子 ,很受大家的欢迎,这类再发布一个的例子,可以同时批量上传文件(包括图片)
网上包括园子里有很多多文件上传的例子,但是没有完整的示例代码,本人整理了一下发布出来,这样更直观,希望对大家有所帮助
开发环境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();
}
}
}
本文转自 liudao 博客园博客,原文链接:http://www.cnblogs.com/liudao/archive/2007/04/10/706835.html,如需转载请自行联系原作者