【问题标题】:How to save multiple uploaded file on one button click如何一键保存多个上传的文件
【发布时间】:2013-12-23 11:54:48
【问题描述】:

我有一个gridview,它在一列中有文件上传选项,我一次只能保存一个图像文件,但是如何保存在不同行gridview上传的多个图像? 我的设计页面:

<div>
     <br/>
       <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>     
     <br/>                
         <asp:Label ID="Label1" runat="server" Font-Bold="True" ForeColor="#000099"></asp:Label>
      <br/>
           <asp:Button ID="button1" Text="Upload"  runat="server" Width="73px"  onclick="button1_Click" />
        <br/>

<asp:GridView ID="grdimagepanel" runat="server" Width="100%" CssClass="GridBooking"
                                                    AutoGenerateColumns="False">
                                                    <Columns>
                                                         <asp:TemplateField HeaderText="File Path">
                                                             <ItemTemplate>
                                                                <asp:FileUpload  ID="fileupload1" runat="server" />

                                                            </ItemTemplate>
                                                              </asp:TemplateField>
                                                     <asp:TemplateField HeaderText="Image Descriptions">
                                                            <ItemTemplate>
                                                                <asp:TextBox ID="txtimagedescription" runat="server" 

                                                                    CssClass="txtgrid1" Width="98%" ></asp:TextBox>
                                                            </ItemTemplate>
                                                            <HeaderStyle Width="75%" />
                                                        </asp:TemplateField>
                                                        <asp:TemplateField HeaderText="Scanned">
                                                            <ItemTemplate>
                                                                <table>
                                                                    <tr>
                                                                        <td>
                                                                            <asp:TextBox ID="txtimagedate" runat="server" 

                                                                                 Width="100px" CssClass="txtgrid" ></asp:TextBox>
                                                                        </td>
                                                                        <td>
                                                                            <asp:ImageButton ID="imgbtnScanDatetime"  runat="server"
                                                                                CssClass="btncalnder" />
                                                                           <%-- <asp:CalendarExtender ID="CalendarExtender4" runat="server" 
                                                                                Format="MM-dd-yyyy" TargetControlID="txtimagedate">
                                                                            </asp:CalendarExtender>--%>
                                                                        </td>
                                                                    </tr>
                                                                </table>
                                                            </ItemTemplate>
                                                        </asp:TemplateField>
                                                        <asp:TemplateField HeaderText=" ">
                                                            <ItemTemplate>
                                                                <asp:ImageButton ID="ImgbtnImageTab" runat="server" 
                                                                      Width="10"
                                                                    Height="20" />

                                                            </ItemTemplate>
                                                        </asp:TemplateField>
                                                    </Columns>
                                                </asp:GridView>
</div>

我的后台代码:

Protected Sub button1_Click(sender As Object, e As EventArgs)
    For Each grdRow As GridViewRow In grdimagepanel.Rows
        Dim fileupload1 As FileUpload = TryCast(Me.grdimagepanel.Rows(ViewState("SelectedRowIndex")).FindControl("fileupload1"), FileUpload)

        'Dim fileupload1 As FileUpload = grdimagepanel.FindControl("fileupload1")
        If fileupload1.HasFile Then
            Try

                If fileupload1.PostedFile.ContentType = "image/jpeg" Then
                    If fileupload1.PostedFile.ContentLength < 5120000 Then
                        Dim filename As String = Path.GetFileName(fileupload1.FileName)
                        fileupload1.SaveAs(Server.MapPath("~/F:\Abc\ImageUploaded\") & filename)
                        Label1.Text = "File uploaded successfully!"
                        Label2.Text = Server.MapPath(fileupload1.FileName)
                    Else

                        Label1.Text = "File maximum size is 500 Kb"
                    End If
                Else

                    Label1.Text = "Only JPEG files are accepted!"
                End If
            Catch exc As Exception

                Label1.Text = "The file could not be uploaded. The following error occured: " & exc.Message
            End Try
        End If
    Next
End Sub

【问题讨论】:

    标签: asp.net vb.net visual-studio-2010


    【解决方案1】:

    请尝试以下代码:

    你已经有了网格行,所以你需要找到fileuplaod控件grdRow而不是使用SelectedRowIndex

    Protected Sub button1_Click(sender As Object, e As EventArgs)
        For Each grdRow As GridViewRow In grdimagepanel.Rows
            Dim fileupload1 As FileUpload = TryCast(grdRow.FindControl("fileupload1"), FileUpload)
            'Dim fileupload1 As FileUpload = grdimagepanel.FindControl("fileupload1")
            If fileupload1.HasFile Then
                Try
    
                    If fileupload1.PostedFile.ContentType = "image/jpeg" Then
                        If fileupload1.PostedFile.ContentLength < 5120000 Then
                            Dim filename As String = Path.GetFileName(fileupload1.FileName)
                            fileupload1.SaveAs(Server.MapPath("~/F:\ImageUploaded\") & filename)
                            Label1.Text = "File uploaded successfully!"
                            Label2.Text = Server.MapPath(fileupload1.FileName)
                        Else
    
                            Label1.Text = "File maximum size is 500 Kb"
                        End If
                    Else
    
                        Label1.Text = "Only JPEG files are accepted!"
                    End If
                Catch exc As Exception
    
                    Label1.Text = "The file could not be uploaded. The following error occured: " & exc.Message
                End Try
            End If
        Next
    End Sub
    

    【讨论】:

    • 感谢您的建议,但它将如何能够上传多个文件
    猜你喜欢
    • 1970-01-01
    • 2013-12-08
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    相关资源
    最近更新 更多