FileUpload未上传所有图片

时间:2017-11-18 17:23:11

标签: c# asp.net .net file-upload

我正在开发一个项目,我可以使用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);
    }
}

我面临的问题是 - 只上传了一个图片文件,而不是像上传所有图片一样: enter image description here

任何帮助都将非常感谢!

1 个答案:

答案 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

}