如何用SAFileUp上传文件?

网络整理 - 09-16
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>
Alternate Text for banner:</TD>
<TD><INPUT TYPE="text"  NAME="alt">
</TD></TR>
<TR><TD>
URL:   </TD><TD><INPUT TYPE="text"  NAME="url">
</TD></TR>
<TR><TD>
Get Add:</TD><TD><input type="file"><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 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

%>