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?