gpt4 book ai didi

c# - 从一个 View MVC 中的两个上传控件发布图像

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

我有两个文件上传控件。第一个控件接受基本上是产品图标的图像类型的单个文件。第二个上传控件允许上传多张图片,它包含产品的多张图片。

现在我可以使用下面的代码成功上传文件了

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);
}

这段代码完美地保存了文件,但我想将图标文件保存在一个单独的目录中我不知何故想知道该文件来自单个上传控件,以便我可以将它保存在图标文件夹中。

最佳答案

您可以为您的操作方法使用命名参数,而不是从 Request.Files 中读取文件

因此,在您的表单(在您的 View 中)中,为您的文件输入控件指定 2 个不同的名称

<input type="file" name="productIcon" />
<input type="file" name="productImages" multiple />

现在在您的操作方法中,有 2 个参数与输入文件元素的名称同名。

[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
}

关于c# - 从一个 View MVC 中的两个上传控件发布图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42653144/

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