Skip to main content
 首页 » 编程设计

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

2024年02月27日35leader

我正在尝试从一个表单上传多张图片。然后使用 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