在ASP.NET MVC 5中,可以使用Request.Files
属性来获取上传的文件。以下是一种解决方法,用于在上传多个具有相同扩展名的文件时获取相同文件:
首先,在视图中创建一个表单,允许用户上传多个文件:
然后,在控制器的相应操作中,可以使用Request.Files
属性来获取上传的文件,并使用Path.GetExtension()
方法来获取文件的扩展名。可以使用一个Dictionary
来存储具有相同扩展名的文件。
[HttpPost]
public ActionResult Action()
{
Dictionary> filesByExtension = new Dictionary>();
// 获取上传的文件
for (int i = 0; i < Request.Files.Count; i++)
{
HttpPostedFileBase file = Request.Files[i];
// 获取文件扩展名
string extension = Path.GetExtension(file.FileName);
// 如果字典中已经存在该扩展名,则将文件添加到对应的列表中
if (filesByExtension.ContainsKey(extension))
{
filesByExtension[extension].Add(file);
}
else // 否则,创建一个新的列表,并将文件添加到该列表中
{
filesByExtension[extension] = new List() { file };
}
}
// 对于每个扩展名,处理文件列表
foreach (var kvp in filesByExtension)
{
string extension = kvp.Key;
List files = kvp.Value;
// 在这里进行进一步的处理,例如保存文件到磁盘
foreach (var file in files)
{
// 处理文件
}
}
return RedirectToAction("Index");
}
这样,你就可以在上传多个具有相同扩展名的文件时获取相同文件。
上一篇:ASP.NET MVC 5 - 在模型中具有HTML内容的奇怪行为
下一篇:ASP.NET MVC 5 - 在与Cybersource的回复中,会话ID会随着mvc-action的变化而改变。丢失会话对象。