Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Working with Files Stored in SQL database

Status
Not open for further replies.

mkyzar

Programmer
Oct 19, 2000
56
US
I am a newbie to the world of ASP and I need some help. I have an upload page and a download page for inserting and retrieving files to a SQL database. The upload seems to be working, but when I download the files from the database I'm getting garbage in the files. Will someone please take a look and see if you can tell me what I've done wrong?

Thanks in advance!

UPLOAD:

<HTML>
<BODY>

<%
Set Upload = Server.CreateObject("Persits.Upload")

' we use memory uploads, so we must limit file size
Upload.SetMaxSize 100000, True

' Save to memory. Path parameter is omitted
Count = Upload.Save

' Obtain file object
Set File = Upload.Files("THEFILE")

If Not File Is Nothing Then
' Build ADO connection string
Connect = "Provider='SQLOLEDB' ;Data Source='DDD42\D1' ; Packet Size=32767;Initial Catalog='WebApps_DataCenter'; User ID='webappsdc'; Password='webappsdc&&2007'"

' Use ADO Recordset object
Set rs = Server.CreateObject("adodb.recordset")

' Optional: check whether this file already exists
filename = File.FileName
rs.Open "SELECT * from WebAppsDocuments WHERE filename='" & filename & "'", Connect, 2, 3
If Not rs.EOF Then
Response.Write "This file already exists in the database."
Response.End
End If
rs.Close

' Reopen recordset to insert file
rs.Open "WebAppsDocuments", Connect, 2, 3

rs.AddNew
rs("WebAppsDoc").value = File.Binary
rs("WebAppsDocCategoryID").value = Upload.Form("category")
rs("WebAppsDocsDesc").value = Upload.Form("DESCR")
rs("file_ext").value = right(trim(File.FileName),4)
rs("filename").value = File.FileName
rs("filesize").value = File.Size
rs.Update

Response.Write "File saved."
Else
Response.Write "File not selected."
End If
set rs = nothing
set Upload = nothing
%>

</BODY>
</HTML>



DOWNLOAD:
<!-- #include file="global.asp"-->
<%


filename = request("id")
'response.write (id)

Set Conn=Server.CreateObject("ADODB.Connection")
Conn.CursorLocation = 3
Conn.Open session("conn")

Set filers = Server.CreateObject("ADODB.Recordset")
fileSQL = ""
fileSQL = fileSQL & "SELECT * FROM WebAppsDocuments WHERE id = " & Request("id")
fileSQL = fileSQL & ";"
'response.write "<p>Program sql="&fileSQL&"<br>"
filers.Open fileSQL,Conn


If filers("file_ext") = ".txt" then
Response.ContentType = "text/html"
elseif filers("file_ext") = ".xls" then
Response.ContentType = "application/x-msexcel"
elseif filers("file_ext") = ".pdf" then
Response.ContentType = "application/pdf"
elseif filers("file_ext") = ".doc" then
Response.ContentType = "application/msword"
end if
' let the browser know the file name
Response.AddHeader "Content-Disposition", "attachment;filename=" & Trim(filers("id"))
' let the browser know the file size
Response.AddHeader "Content-Length", filers("filesize")
Response.BinaryWrite filers("WebAppsDoc")
%>
 
Not going to be any help to you, but some advice. It's a bad thing to give out you entire database connection string.
Connect = "Provider='SQLOLEDB' ;Data Source='DDD42\D1' ; Packet Size=32767;Initial Catalog='WebApps_DataCenter'; User ID='webappsdc'; Password='webappsdc&&2007'"

You might have bigger problems on your hands when a hacker gets in.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top