我在MVC中创建一个包含多个文件上传器的页面。enumerable,在mvc中循环
我想达到的目标是,当我提交值上传应该被命名为图像和递增i
超值,喜欢guid0
,guid1
,guid2
。我尝试了循环,但它只保存一个图像,直到循环结束。 i++
虽然不工作。
我的控制器看起来是这样的:
public ActionResult Home(SomeClass someclass, IEnumerable<HttpPostedFileBase> files)
{
var guid = Guid.NewGuid().ToString();
someclass.filename = guid;
int i = 0;
foreach (var file in files)
{
if (file.ContentLength > 0)
{
var fileName = guid + "" + i + ".jpg";
var path = Path.Combine(Server.MapPath("~/Content/admin/Upload"), fileName);
file.SaveAs(path);
i++;
}
}
db.someclasses.Add(someclass);
db.SaveChanges();
return RedirectToAction("Preview");
}
而我的观点是这样的
<input type="file" name="files" id=1>
<input type="file" name="files" id=2>
更新:我收到11个文件的,如果循环,但一旦他们经过在名为fdea36c3-545a-4e08-8af4-7fa6bd88bc6b0的图像文件夹中只有单个图像。我试图实现的是所有11个图像命名为fdea36c3-545a-4e08-8af4-7fa6bd88bc6b0,fdea36c3-545a-4e08-8af4-7fa6bd88bc6b1,fdea36c3-545a-4e08-8af4-7fa6bd88bc6b2 .....等等。
我不想为每个文件这样做,因为它需要设置和从数据库中检索11个不同的图像。感谢您的答案.... –
您确定来自多个文件上传控件的文件可用于IEnumerable文件吗? AFAIK,只有当文件控制设置为多个属性时,才会获得多个文件。 –
我在file.contenLength> 0我收到11个文件我有什么办法可以实现fdea36c3-545a-4e08-8af4-7fa6bd88bc6b0,fdea36c3-545a-4e08-8af4-7fa6bd88bc6b1哪里最后一个数字串在int值 –