2017-11-03 110 views
1

我想从表单上传多个图像。然后使用WebImage.GetImageFromRequest()获取图像。这适用于单个上传字段,但我不确定如何使用它来获取多个文件。C# - 使用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”等?

回答

2

是否包含

enctype="multipart/form-data" 

到您的形式?

例子:

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

下面是一个例子,如何通过多个文件迭代:

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

这种联系的答案。只需要指定字段名称: photo1 = WebImage.GetImageFromRequest(“Image1”); –