Hello All,
The problem with File1.PostedFile = Nothing can be resolved by adding adding "enctype" to your form like so:
<form id="Form1" method="post" runat="server" enctype="multipart/form-data">
I followed the instructions but I am having a problem when the following code is executed:
Dim iLength As Integer = CType(File1.PostedFile.InputStream.Length, Integer)
I debugged the code and I found out that
File1.Value = "C:\Documents and Settings\Owner\My Documents\Word\Test File.doc"
File1.PostedFile = nothing
The error message is "System.NullReferenceException: Object reference not set to an instance of an object". Am I correct in assuming that this is because File1.PostedFile has a value of nothing? What might I do to corret this problem.
Best,
Alex
Drag a file field control from the HTML section of your toolbar onto your form.
Right click on it and make sure it's set to run as a server control.
Also drag a button onto your control to begin the upload.
Here's the code that goes under the button. This code will work to upload any file type, not just images.
Private Sub btnAttach_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnAttach.Click
Dim iLength As Integer = _ CType(File1.PostedFile.InputStream.Length, Integer)
If iLength = 0 Then Exit Sub 'not a valid file
Dim sContentType As String = File1.PostedFile.ContentType
Dim sFileName As String, i As Integer
Dim bytContent As Byte()
ReDim bytContent(iLength) 'byte array, set to file size
'strip the path off the filename
i = InStrRev(File1.PostedFile.FileName.Trim, "\")
If i = 0 Then
sFileName = File1.PostedFile.FileName.Trim
Else
sFileName = Right(File1.PostedFile.FileName.Trim, Len(File1.PostedFile.FileName.Trim) - i)
End If
Try
File1.PostedFile.InputStream.Read(bytContent, 0, iLength)
With cmdInsertAttachment
.Parameters("@FileName").Value = sFileName
.Parameters("@FileSize").Value = iLength
.Parameters("@FileData").Value = bytContent
.Parameters("@ContentType").Value = sContentType
.ExecuteNonQuery()
End With
Catch ex As Exception
'Handle your database error here
dbConn.Close()
End Try
Response.Redirect(Request.Url.ToString) 'Refresh page
End Sub
Here's the SQL Query that the above code uses:
INSERT INTO tblAttachments
(FileName, FileSize, FileData, ContentType)
VALUES (@FileName, @FileSize, @FileData, @ContentType)
Here's more info:
http://www.aspnetpro.com/features/2003/07/asp200307so_f/asp200307so_f.asp
--
I hope this helps,
Steve C. Orr, MCSD
http://Steve.Orr.net