webForumDet fria alternativet

Ladda upp flera filer

.NET

0 svar · 241 visningar · startad av andreas_lindh

Medlem sedan jan. 20011 140 inlägg
Frågan#1

På aspx sidan har jag en dropdown där man kan välja antal och en panel som jag skapar htmlInputfile i.

asp:dropdownlist id="ddlAntal" runat="server" autopostback="True" onselectedindexchanged="skapa">
			<asp:listitem value="" selected="True"> </asp:listitem>
			<asp:listitem value="3">3</asp:listitem>
		</asp:dropdownlist>
		<asp:panel id="plMb" runat="server" />
		<asp:button id="btupload" runat="server" onclick="upload" />

Sen har jag den här koden som skapar input fälten

    Protected WithEvents tbBild1 As System.Web.UI.HtmlControls.HtmlInputFile
    Protected WithEvents tbBild2 As System.Web.UI.HtmlControls.HtmlInputFile
    Protected WithEvents tbBild3 As System.Web.UI.HtmlControls.HtmlInputFile
    Protected WithEvents tbBild4 As System.Web.UI.HtmlControls.HtmlInputFile
    Protected WithEvents tbBild5 As System.Web.UI.HtmlControls.HtmlInputFile

Public Sub skapa(ByVal sender As Object, ByVal e As EventArgs)
        Dim i As Integer
        Dim pl As New Panel()
        For i = 1 To 3
            Dim tbl As New Table()

            Dim tblr As New TableRow()
            Dim tblc As New TableCell()
            Dim tbBild As New System.Web.UI.HtmlControls.HtmlInputFile()
            tbBild.ID = "tbBild" & i
            tblc.Controls.Add(tbBild)
            tblr.Cells.Add(tblc)
            tbl.Rows.Add(tblr)
            pl.Controls.Add(tbl)
        Next
        plMb.Controls.Add(pl)
    End Sub

    Public Sub upload(ByVal sender As Object, ByVal e As EventArgs)
        Dim i As Integer
        For i = 1 To 3
            Dim upl As String
            Dim bild As String = Request.Params("tbBild" & i.ToString())
            Dim m_ID As Integer = viewstate("matchID")
            Dim strFileName As String
            Dim strFilePath As String
            Dim strFolder As String
            Dim nBild As String
            strFolder = "e:\ww2\[url]www.tibroik.com\www\matchBilder\[/url]"

            'Get the name of the file that is posted.
            If i = 1 Then
                tbBild1 = Page.FindControl("tbbild1")
                strFileName = tbBild1.PostedFile.FileName
            ElseIf i = 2 Then
                strFileName = tbBild2.PostedFile.FileName
            ElseIf i = 3 Then
                strFileName = tbBild3.PostedFile.FileName
            ElseIf i = 4 Then
                strFileName = tbBild4.PostedFile.FileName
            ElseIf i = 5 Then
                strFileName = tbBild5.PostedFile.FileName
            End If
            strFileName = Path.GetFileName(strFileName)

            'Create the directory if it does not exist.
            If (Not Directory.Exists(strFolder)) Then
                Directory.CreateDirectory(strFolder)
            End If

            'Save the uploaded file to the server.
            strFilePath = strFolder & strFileName
            If File.Exists(strFilePath) Then
                lblUploadResult.Text = "<span style=""color:#ff0000"">" & strFileName & " Finns redan på servern. Byt namn på bilden eller välj bilden i arkivet!</span><br />"
            Else
                Dim OldName, NewName As String
                OldName = strFilePath
                NewName = viewstate("match") & "_" & DateTime.Now.ToString("t") & "_" & i
                nBild = viewstate("match") & "_" & DateTime.Now.ToString("t") & "_" & i
                If i = 1 Then
                    tbBild1.PostedFile.SaveAs(strFilePath)
                ElseIf i = 2 Then
                    tbBild2.PostedFile.SaveAs(strFilePath)
                ElseIf i = 3 Then
                    tbBild3.PostedFile.SaveAs(strFilePath)
                ElseIf i = 4 Then
                    tbBild4.PostedFile.SaveAs(strFilePath)
                ElseIf i = 5 Then
                    tbBild5.PostedFile.SaveAs(strFilePath)
                End If
                Rename(OldName, NewName)

                lblUploadResult.Text = "<span style=""color:#3D6F0D"">" & strFileName & " Upplagd på servern.</span><br />"
            End If

        Next
    End Sub

När jag trycker på knappen får jag det här felet

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error: 

Line 69:             If i = 1 Then
Line 70:                 tbBild1 = Page.FindControl("tbbild1")
Line 71:                 strFileName = tbBild1.PostedFile.FileName
Line 72:             ElseIf i = 2 Then
Line 73:                 strFileName = tbBild2.PostedFile.FileName
 

Source File: d:\inetpub\wwwroot\tibroik.net\admin2\upload.aspx.vb    Line: 71

Är det någon som vet varför jag får det felet. Input fälten finns på sidan.
Är det någon som har en bättre lösning?

265 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)