gpt4 book ai didi

c# - 使用 MVC 上传和处理多个文件

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

我正在尝试在我的网络应用程序中上传多个文件。因此我正在使用 IEnumerable<HttpPostedFileBase>类在每个文件中循环。但我收到一条错误消息 -

Error System.Collections.Generic.IEnumerable<System.Web.HttpPostedFileBase> does not contain a definition for 'ContentLength' and no extension method 'ContentLength' accepting a first argument of type System.Collections.Generic.IEnumerable<System.Web.HttpPostedFileBase' could be found (are you missing a using directive or an assembly reference?)

此错误适用于 HttpPostedFileBase 类中存在的所有属性。我正在尝试编辑该类(class),但它不允许。我尝试在我的 ViewModel 中创建 HttpPostedFileBase 类的 IEnumerable,但它再次失败。我在这里错过了什么?

更新 - 代码:查看

<div class="col-sm-8">                                  
<input type="file" name="Files" id="file1" class="form-control" />
<input type="file" name="Files" id="file2" class="form-control" />
<input type="submit" value="Save" class="btn btn-default" name="Command"/>
</div>

Controller

public ActionResult UploadFile(IEnumerable<HttpPostedFileBase> Files)
{
foreach (var item in Files)
{
if (Files != null && Files.ContentLength > 0)
{
FileUpload up = new FileUpload();
up.PersonId = model.PersonId;
up.FileName = System.IO.Path.GetFileName(Files.FileName);
up.MimeType = Files.ContentType;
up.FileContent = Files.Content;
bll.AddFileUpload(up);
}
}
return View();
}

最佳答案

问题出在这里:

foreach (var item in Files)
if (Files != null && Files.ContentLength > 0)

您正在使用 foreach 迭代集合,但您仍然检查名为 FileIEnumerable 而不是每个项目。你想要的是:

foreach (var item in Files)
if (item != null && item.ContentLength > 0)

作为旁注,您可以使用 Enumerable.Where 过滤掉项目:

foreach (var item in Files.Where(file => file != null && file.ContentLength > 0))
{
FileUpload up = new FileUpload
{
PersonId = model.PersonId,
FileName = System.IO.Path.GetFileName(item.FileName),
MimeType = item.ContentType,
FileContent = item.Content,
};
bll.AddFileUpload(up);
}

关于c# - 使用 MVC 上传和处理多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32673167/

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