How Do I Upload Files to the database with SAFileUp?
Don't do it! Use SAFileUp to upload the files to the server but do not store the image in the database. Instead store the path to the file. Better yet if the images will sit in the same folder just store the actual file name. Uploading the entire image to the database wastes too many resources. You need to upload the image in binary format which is slow. You also waste all that extra database space to store the image. Then you lose speed retrieving it.
These are the requirements for uploading files with SAFileup.
1] You need SAFileUp installed on the server. 2] You need Read, Write, and Change permissions on the directory you are going to save the pictures to. In my example I named the folder "Mypictures". Contact your ISP to set this up for you.
This is the web form - upload.asp. Notice the multipart/form-data. We are not just uploading text here. We are pulling files from the hard drive. Special rules and instructions apply. INPUT TYPE="file" gives us the browser button on the screen which lets us access the hard drive.
<TABLE><TR>
<TD valign='top'>
Category
</TD>
<TD>
<form enctype="multipart/form-data" method="post" action="upload2.asp">
<INPUT TYPE="text" NAME="categoryname">
</TD>
</TR>
<TR><TD align="right">
Alternate Text for banner:</TD>
<TD><INPUT TYPE="text" NAME="alt">
</TD></TR>
<TR><TD align="right">
URL: http:// </TD><TD><INPUT TYPE="text" NAME="url">
</TD></TR>
<TR><TD align="right">
Get Add:</TD><TD><input type="file" name="f1"><br>
</TD></TR></TABLE>
<BR><BR>
<input type="submit" NAME="submit" value="submit">
</form>
The FORM Processing script - upload2.asp. Notice the upl.form("FORM_NAME"). you cannot use request.form to
retrieve form data when uploading files. You must reference the form elements with the File Upload object.
In this example it is "upl". <%
'You must have SAFileUp installed on the server
Set upl = Server.CreateObject("SoftArtisans.FileUp")
categoryname = trim(replace(upl.form("categoryname"),"'",""))
alt = trim(replace(upl.form("alt"),"'",""))
url = trim(replace(upl.form("url"),"'",""))
if categoryname = "" then
response.write "You Must Enter a category name"
response.end
End IF
NewFileName = Mid(upl.UserFilename, InstrRev(upl.UserFilename, "\") + 1)
'Rename file if file name already exists
upl.CreateNewFile = true
'Do not overwrite existing files
'The folder the pictures will be saved in need Read, Write
'and Change permissions. In this example it is "MyPictures"
upl.SaveAs "D:\MyWebs\MyPictures\" & NewFileName
'Make sure we have the http:// extension
'remove it if it was already entered then re-add it
path = NewFileName
url = replace(url,"http://","")
url = CStr("http://"&url)
'Save the image file name, not the actual image
SQLin = "INSERT INTO MyPics (CategoryName,Alt,URL,Path)"
SQLin = SQLin & "VALUES("&categoryname&",'"&alt&"','"&url&"','"&path&"')"
DataConn.execute(SQLin)
response.write "File Uploaded"
%>
Now retrieve the images from the database and display them wherever you want to use them. We will assume that we are grabbing categories from the query string and then pulling their images from the database. We know what folder we saved the pictures to therefore we can hardcode that information in. Now all we need
is the file name associated with the category. <%
catid = request.querystring("catid")
SQL = "Select Alt,URL,Path from Mypics where CategoryID = "&catid&""
set rs = DataConn.execute(SQL)
if not rs.eof then
response.write "<IMG SRC='/MyPictures/" & rs("Path") & "'" & " ALT='" & rs("ALT") & "'>"
End iF
rs.close
set rs = nothing
%>