Click to See Complete Forum and Search --> : how to upload image files and doc files into the sql server database through asp..


omarr226
04-20-2006, 12:26 AM
i m new to dis..i need a complete code dat how u can upload doc files and image files into da sql database in asp using dreamweaver..
i think u need a component dat uploads files..i downloaded two components..
viz, aspsmart upload and aspupload
now i need a code dat uploads da files into da database..
thanx in advance...

Terrorke
04-20-2006, 02:17 AM
You can't upload files into a database.
You have to upload them to your webserver and put the link in a database field.

ex.
http://www.domain.com/docs/doc1.doc

this url can be put in a databasefield and via this way refer to your document.

A while ago I used aspupload to upload files. It worked great an didn't have problems with it.

Grtz

omarr226
04-20-2006, 03:56 PM
wat r u talking abt???
i need to upload an image file and a .doc file..!

Ubik
04-20-2006, 09:36 PM
He is talking about the fact that you cannot upload a file to a database. You have the code to upload the file to your server, aspupload, so just use that.

Terrorke
04-21-2006, 02:03 AM
Ubik is right.
You can't upload the file itself into a database.
The only thing you can do is put the URL to you file into your database.

omarr226
04-21-2006, 03:07 AM
i want to save da jpeg image or any image into da database and also .doc file into da database..!
how?
i found many codes but dey r confusing...!

omarr226
04-21-2006, 03:08 AM
like a user will browse through his computer, select da file and den hit da upload button....
da respective image or doc file will be den saved into da table of sql server database..!

Terrorke
04-21-2006, 06:09 AM
Can you please give me the script witch does this?
Because it isn't possible like you are saying

da!

omarr226
04-21-2006, 03:28 PM
<%
'***************************************
' File: Upload.asp
'****************************************

Class FileUploader
Public Files
Private mcolFormElem

Private Sub Class_Initialize()
Set Files = Server.CreateObject("Scripting.Dictionary")
Set mcolFormElem = Server.CreateObject("Scripting.Dictionary")
End Sub

Private Sub Class_Terminate()
If IsObject(Files) Then
Files.RemoveAll()
Set Files = Nothing
End If
If IsObject(mcolFormElem) Then
mcolFormElem.RemoveAll()
Set mcolFormElem = Nothing
End If
End Sub

Public Property Get Form(sIndex)
Form = ""
If mcolFormElem.Exists(LCase(sIndex)) Then Form = mcolFormElem.Item(LCase(sIndex))
End Property

Public Default Sub Upload()
Dim biData, sInputName
Dim nPosBegin, nPosEnd, nPos, vDataBounds, nDataBoundPos
Dim nPosFile, nPosBound

biData = Request.BinaryRead(Request.TotalBytes)
nPosBegin = 1
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))

If (nPosEnd-nPosBegin) <= 0 Then Exit Sub

vDataBounds = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
nDataBoundPos = InstrB(1, biData, vDataBounds)

Do Until nDataBoundPos = InstrB(biData, vDataBounds & CByteString("--"))

nPos = InstrB(nDataBoundPos, biData, CByteString("Content-Disposition"))
nPos = InstrB(nPos, biData, CByteString("name="))
nPosBegin = nPos + 6
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
sInputName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
nPosFile = InstrB(nDataBoundPos, biData, CByteString("filename="))
nPosBound = InstrB(nPosEnd, biData, vDataBounds)

If nPosFile <> 0 And nPosFile < nPosBound Then
Dim oUploadFile, sFileName
Set oUploadFile = New UploadedFile

nPosBegin = nPosFile + 10
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
sFileName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
oUploadFile.FileName = Right(sFileName, Len(sFileName)-InStrRev(sFileName, "\"))

nPos = InstrB(nPosEnd, biData, CByteString("Content-Type:"))
nPosBegin = nPos + 14
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))

oUploadFile.ContentType = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))

nPosBegin = nPosEnd+4
nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
oUploadFile.FileData = MidB(biData, nPosBegin, nPosEnd-nPosBegin)

If oUploadFile.FileSize > 0 Then Files.Add LCase(sInputName), oUploadFile
Else
nPos = InstrB(nPos, biData, CByteString(Chr(13)))
nPosBegin = nPos + 4
nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
If Not mcolFormElem.Exists(LCase(sInputName)) Then mcolFormElem.Add LCase(sInputName), CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
End If

nDataBoundPos = InstrB(nDataBoundPos + LenB(vDataBounds), biData, vDataBounds)
Loop
End Sub

'String to byte string conversion
Private Function CByteString(sString)
Dim nIndex
For nIndex = 1 to Len(sString)
CByteString = CByteString & ChrB(AscB(Mid(sString,nIndex,1)))
Next
End Function

'Byte string to string conversion
Private Function CWideString(bsString)
Dim nIndex
CWideString =""
For nIndex = 1 to LenB(bsString)
CWideString = CWideString & Chr(AscB(MidB(bsString,nIndex,1)))
Next
End Function
End Class

Class UploadedFile
Public ContentType
Public FileName
Public FileData

Public Property Get FileSize()
FileSize = LenB(FileData)
End Property

Public Sub SaveToDisk(sPath)
Dim oFS, oFile
Dim nIndex

If sPath = "" Or FileName = "" Then Exit Sub
If Mid(sPath, Len(sPath)) <> "\" Then sPath = sPath & "\"

Set oFS = Server.CreateObject("Scripting.FileSystemObject")
If Not oFS.FolderExists(sPath) Then Exit Sub

Set oFile = oFS.CreateTextFile(sPath & FileName, True)

For nIndex = 1 to LenB(FileData)
oFile.Write Chr(AscB(MidB(FileData,nIndex,1)))
Next

oFile.Close
End Sub

Public Sub SaveToDatabase(ByRef oField)
If LenB(FileData) = 0 Then Exit Sub

If IsObject(oField) Then
oField.AppendChunk FileData
End If
End Sub

End Class
%>

omarr226
04-21-2006, 03:31 PM
<%@ Language=VBScript %>
<%Option Explicit%>
<!-- #include file="upload.asp" -->
<%

'NOTE - YOU MUST HAVE VBSCRIPT v5.0 INSTALLED ON YOUR WEB SERVER
' FOR THIS LIBRARY TO FUNCTION CORRECTLY. YOU CAN OBTAIN IT
' FREE FROM MICROSOFT WHEN YOU INSTALL INTERNET EXPLORER 5.0
' OR LATER.


' Create the FileUploader
Dim Uploader, File
Set Uploader = New FileUploader

' This starts the upload process
Uploader.Upload()

'******************************************
' Use [FileUploader object].Form to access
' additional form variables submitted with
' the file upload(s). (used below)
'******************************************
Response.Write "<b>Thank you for your upload " & Uploader.Form("fullname") & "</b><br>"

' Check if any files were uploaded
If Uploader.Files.Count = 0 Then
Response.Write "File(s) not uploaded."
Else
' Loop through the uploaded files
For Each File In Uploader.Files.Items

' Check where the user wants to save the file
If Uploader.Form("saveto") = "disk" Then

' Save the file
File.SaveToDisk "E:\UploadedFiles\"

ElseIf Uploader.Form("saveto") = "database" Then

' Open the table you are saving the file to
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open "MyUploadTable", "CONNECT STRING OR ADO.Connection", 2, 2
RS.AddNew ' create a new record

RS("filename") = File.FileName
RS("filesize") = File.FileSize
RS("contenttype") = File.ContentType

' Save the file to the database
File.SaveToDatabase RS("filedata")

' Commit the changes and close
RS.Update
RS.Close
End If

' Output the file details to the browser
Response.Write "File Uploaded: " & File.FileName & "<br>"
Response.Write "Size: " & File.FileSize & " bytes<br>"
Response.Write "Type: " & File.ContentType & "<br><br>"
Next
End If

%>

chrismartz
04-21-2006, 05:29 PM
If you look in that code, you will see that it is actually saving the file to a folder....File.SaveToDisk "E:\UploadedFiles\"

omarr226
04-22-2006, 06:18 AM
and if u look even more closely u will notice

ElseIf Uploader.Form("saveto") = "database" Then

' Open the table you are saving the file to
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open "MyUploadTable", "CONNECT STRING OR ADO.Connection", 2, 2
RS.AddNew ' create a new record

RS("filename") = File.FileName
RS("filesize") = File.FileSize
RS("contenttype") = File.ContentType

' Save the file to the database
File.SaveToDatabase RS("filedata")

chrismartz
04-22-2006, 10:56 AM
Where did you find this code at? I was able to upload to a folder, but I do not know the table data-types for uploading to the database so I get an error when trying to upload.

chrismartz
04-22-2006, 11:43 AM
I got this to work. Although I only have images being able to be saved and then be pulled back to a page. The table should be set up like this (in MSSQL 2000 or 2005):
filename--------text
filesize---------char
contenttype----text
filedata---------image