gpt4 book ai didi

c# - 你如何正确编写一个 foreach 循环以在 asp.net C# 中上传多个文件

转载 作者:太空宇宙 更新时间:2023-11-03 21:26:52 26 4
gpt4 key购买 nike

我已经在许多站点上看到这种样式作为在 asp.net 中上传多个文件的方式进行演示,但我无法让它工作。如果我选择 6 个文件,它最终只保存一个文件,但标签显示 6 个相同名称的文件名。当我调试时,它会像我希望的那样在每个循环中显示每个文件名。为什么它不起作用?

此外,如果重要的话,我在页面上有一个更新面板。

我正在使用启用了多个上传功能的 asp.net 上传控件。我知道路径是正确的,因为当我只上传一个文件时它工作得很好。

string Path = Request.Url.AbsolutePath;
string ProperPath = Path.Replace(@"Pages/InsertVideo.aspx", @"TrainingMaterial/Video/");

if (FileUpload1.HasFiles) {
//SaveFile(FileUpload1.PostedFile);

foreach (HttpPostedFile File in FileUpload1.PostedFiles)
{
FileUpload1.SaveAs(System.IO.Path.Combine(Server.MapPath(ProperPath), FileUpload1.FileName));
lblFilesUploaded1.Text += String.Format("{0}<br />", FileUpload1.FileName);
}
}

我也尝试过这种技术,结果与上述相同。有什么建议吗?我认为这与我的 SaveAs 字符串有关。

foreach (string key in Request.Files)
{
HttpPostedFile file = Request.Files[key];
if (file.ContentLength != 0)
{
file.SaveAs(System.IO.Path.Combine(Server.MapPath(ProperPath), FileUpload1.FileName));
}
}

最佳答案

这应该可以解决问题:

if (FileUpload1.HasFiles)
{
foreach (var file in FileUpload1.PostedFiles)
{
file.SaveAs(Path.Combine(Server.MapPath(ProperPath), file.FileName));
lblFilesUploaded1.Text += String.Format("{0}<br />", file.FileName);
}
}

在您的解决方案中,您在 foreach 中引用的始终是 FileUpload 控件,而不是当前上传的文件。

关于c# - 你如何正确编写一个 foreach 循环以在 asp.net C# 中上传多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26457623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com