Asp.Net多文件上传

时间:2012-06-01 11:00:36

标签: asp.net vb.net image-uploading multi-upload

我已经设置了一个asp.net多文件上传,它可以工作,但不是我想象的那样。

在我的页面上,我有两个像这样的图像上传者

<input type="file" id="gallery" class="multi" accept="jpg" runat="server" />

<input type="file" id="pic1" accept="jpg" runat="server" />

我的问题是我上传时使用此代码

Dim hfc As HttpFileCollection = Request.Files

要获取已发布的所有文件,但我只想要gallery这种特定方法的图像。

我有一种不同的方法来上传我的其他图片。

我已尝试将其更改为以下

Dim hfc As HttpFileCollection = Request.Files("gallery")

但是我收到了错误

  

'System.Web.HttpPostedFile'类型的值无法转换为'System.Web.HttpFileCollection'。

我有什么想法可以做到这一点?

由于

修改

这是我正在使用的完整代码

Dim hfc As HttpFileCollection = Request.Files("gallery")
For i As Integer = 0 To hfc.Count - 1
Dim hpf As HttpPostedFile = hfc(i)
If hpf.ContentLength > 0 Then
    hpf.SaveAs(Server.MapPath("/images/" & i & ".jpg"))
End If
Next i

当我使用下面答案中的代码时,我收到错误

  

'Count'不是'System.Web.HttpPostedFile'的成员。

编辑2

这适用于上传我的所有图片

Dim hfc As HttpFileCollection = Request.Files
For i As Integer = 0 To hfc.Count - 1
Dim hpf As HttpPostedFile = hfc(i)
If hpf.ContentLength > 0 Then
hpf.SaveAs(Server.MapPath("/images/" & i & ".jpg"))
End If
Next i

但是它上传了每张图片 - 我只是希望它上传从

发布的文件

<input type="file" id="gallery" class="multi" accept="jpg" runat="server" />

而不是这一个

<input type="file" id="pic1" accept="jpg" runat="server" />

1 个答案:

答案 0 :(得分:0)

Request.Files("gallery")无效,因为它的属性不是方法。

您可以通过请求PostedFile值从Gallery输入中获取已发布文件,然后像以前一样保存到文件系统。

Dim hfc As System.Web.HttpPostedFile = gallery.PostedFile
If hpf.ContentLength > 0 Then
   hpf.SaveAs(Server.MapPath("/images/GalleryImage.jpg"))
End If

显然,您可以根据需要创建文件名。