C# - 使用 WebImage.GetImageFromRequest() 进行多次上传

C# - Use WebImage.GetImageFromRequest() with multiple uploads

我正在尝试从一个表单上传多张图片。然后使用 WebImage.GetImageFromRequest() 抓取图像。这适用于单个上传字段,但我不确定如何使用它来获取多个文件。

我的HTML表格:

<input id="uploadBtn1" type="file" name="Image1" accept=".jpg,.png" class="upload"/>
<input id="uploadBtn2" type="file" name="Image2" accept=".jpg,.png" class="upload"/>
<input id="uploadBtn3" type="file" name="Image3" accept=".jpg,.png" class="upload"/>

我的 C# 代码

if (IsPost)
{
 photo1 = WebImage.GetImageFromRequest("image1");
 newFileName = Guid.NewGuid().ToString() + "_" + Path.GetFileName(photo1.FileName);
 imagePath = @"branding\" + newFileName;
 photo1.Save(@"~\" + imagePath);

 photo2 = WebImage.GetImageFromRequest("image2");
 newFileName = Guid.NewGuid().ToString() + "_" + Path.GetFileName(photo2.FileName);
 imagePath = @"branding\" + newFileName;
 photo2.Save(@"~\" + imagePath);

 photo3 = WebImage.GetImageFromRequest("image3");
 newFileName = Guid.NewGuid().ToString() + "_" + Path.GetFileName(photo3.FileName);
 imagePath = @"branding\" + newFileName;
 photo3.Save(@"~\" + imagePath);
}

这会引发错误: System.NullReferenceException: 对象引用未设置到对象的实例。 第 101 行:newFileName = Guid.NewGuid().ToString() + "_" + Path.GetFileName(photo3.FileName);

我认为我使用的语法不正确:photo1 = WebImage.GetImageFromRequest("image1");

我如何指定这个以获得 "image1" 上传字段?还有 "image2"、"image3" 等?

你包括了吗

enctype="multipart/form-data"

进入你的表单?

示例:

<form action="" method="post" enctype="multipart/form-data">  

这是一个如何遍历多个文件的例子:

https://forums.asp.net/t/2024891.aspx?WebImage+helper+multiple+image+upload