我正在开发一个项目,我可以使用FileUpload控件上传多个文件:
我有一个保存图像文件的按钮,如下所示:
protected void btnSave_Click(object sender, EventArgs e)
{
if (fuImage.HasFiles)
{
foreach (var file in fuImage.PostedFiles)
{
UploadFile("Images",fuImage);
}
}
}
还有一种方法可以将文件上传/保存为文件夹,如下所示:
private void UploadFile(string FolderName, FileUpload fu)
{
string FolderPath = "~\\" + FolderName;
DirectoryInfo FolderDir = new DirectoryInfo(Server.MapPath(FolderPath));
if (!FolderDir.Exists)
{
FolderDir.Create();
}
string FilePath = Path.Combine(Server.MapPath(FolderPath), fu.FileName);
if (!File.Exists(FilePath))
{
fu.SaveAs(FilePath);
}
}
我面临的问题是 - 只上传了一个图片文件,而不是像上传所有图片一样:
任何帮助都将非常感谢!
答案 0 :(得分:0)
您的代码中有错误。这是一个固定的代码。
首先确保您在asp.net 4.5
或更新
<强>的web.config 强>
<compilation debug="true" targetFramework="4.6.1" urlLinePragmas="true"/>
接下来的.cs
。
protected void btnSave_Click(object sender, EventArgs e)
{
if (fuImage.HasFiles)
{
foreach (HttpPostedFile file in fuImage.PostedFiles) //be explicit
//Note that var file is HttpPostedFile
{
UploadFile("Images",file); //not fuImage
}
}
}
private void UploadFile(string FolderName, HttpPostedFile fu)//FileUpload gives single file
{
string FolderPath = "~/" + FolderName; // \\ is not the best choice
//your remaining code works and is skipped for brevity
}