C# 在一个视图MVC中发布来自两个上载控件的图像
我有两个文件上传控制。第一个控件接受类型为image的单个文件,该文件基本上是产品图标。第二个上载控件允许多个图像上载,它包含产品的多个图像 现在我可以使用以下代码成功上传文件C# 在一个视图MVC中发布来自两个上载控件的图像,c#,html,asp.net-mvc,C#,Html,Asp.net Mvc,我有两个文件上传控制。第一个控件接受类型为image的单个文件,该文件基本上是产品图标。第二个上载控件允许多个图像上载,它包含产品的多个图像 现在我可以使用以下代码成功上传文件 for (int i = 0; i < Request.Files.Count; i++) { var file = Request.Files[i]; if (file != null && file.ContentLength &
for (int i = 0; i < Request.Files.Count; i++)
{
var file = Request.Files[i];
if (file != null && file.ContentLength > 0)
{
if (validImageTypes.Contains(file.ContentType))
{
var fileName = Path.GetFileName(file.FileName);
LocationImage fileDetail = new LocationImage()
{
FileName = fileName,
Extension = Path.GetExtension(fileName),
ID = Guid.NewGuid()
};
fileDetails.Add(fileDetail);
var path = Path.Combine(Server.MapPath("~/Upload/Images"), fileDetail.ID + fileDetail.Extension);
file.SaveAs(path);
}
for(int i=0;i0)
{
if(validImageTypes.Contains(file.ContentType))
{
var fileName=Path.GetFileName(file.fileName);
LocationImage fileDetail=新的LocationImage()
{
FileName=FileName,
Extension=Path.GetExtension(文件名),
ID=Guid.NewGuid()
};
添加(fileDetail);
var path=path.Combine(Server.MapPath(“~/Upload/Images”)、fileDetail.ID+fileDetail.Extension);
file.SaveAs(路径);
}
这段代码完美地保存了文件,但我想将图标文件保存在一个单独的目录中。我想知道该文件来自单个上载控件,以便我可以将其保存在图标文件夹中。您可以使用命名参数作为操作方法,而不是从
请求.文件中读取文件。
因此,在您的表单中(在您的视图中),为您的文件输入控件指定两个不同的名称
<input type="file" name="productIcon" />
<input type="file" name="productImages" multiple />
现在,在动作方法中,有两个参数的名称与输入文件元素的名称相同
[HttpPost]
public ActionResult Save(HttpPostedFileBase productIcon,
IEnumerable<HttpPostedFileBase> productImages)
{
// to do : Save these
if(productIcon!=null)
{
// to do : Save icon image
}
if(productImages!=null)
{
foreach(var img in productImages)
{
// to do : Save img
}
}
// to do : Return something
}
[HttpPost]
公共操作结果保存(HttpPostedFileBase产品图标,
IEnumerable产品(图像)
{
//要做的事:保存这些
if(productIcon!=null)
{
//要执行的操作:保存图标图像
}
如果(productImages!=null)
{
foreach(productImages中的var img)
{
//要做的事情:保存img
}
}
//做:归还某物
}
很小,但是由于otherImages
输入显然意味着允许多个图像,因此需要将multiple
属性添加到标记中。@ChrisPratt Yea.已修复。