ASP Upload 使用說明
發表于:2007-06-30來源:作者:點擊數:
標簽:
使用ASP實現文件上載到WEB服務器 ASPupload 2.0版,相關源文件如下(uploadTest.htm): html head meta http-equiv="Content-Type" content="text/html; charset=gb2312" title文件上載客戶端/title /head body form method="POST" action="uploadTest1.asp
使用ASP實現文件上載到WEB服務器
ASPupload 2.0版,相關源文件如下(uploadTest.htm):<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>文件上載客戶端</title>
</head>
<body>
<form method="POST" action="uploadTest1.asp" enctype="multipart/form-data"
name="UPloadForm">
<p><input type="file" Name="File1"> </p>
<p><input type="submit" value="Submit" name="Upload"></p>
</form>
</body>
</html>
其中客戶端文件要注意兩點:
* 文件上載提交表單(Form)的enctype必須指定為“multipart/form-data”
* 語句<input type="file" Name="File1">表示上載文件域,用戶可以在該域中輸入或選定文件。
服務器端源文件如下(uploadTest1.asp):<%response.buffer=true%>
<html>
<%Set Upload=Server.createobject("Persits.Upload.1") @#創建文件上載組件
Count=Upload.Save("e:\aspupload") @#將客戶端文件保存到WEB服務器端的本地硬盤上%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Upload Test</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<body>
<p>上載了<%=Count%>個文件</p>
<p>File has been uploaded.</p>
</body>
</html>
其中,腳本Set Upload=Server.createobject("Persits.Upload.1")創建了文件上載組件,該組件通過調用Save方法將瀏覽器端的文件內容保存到指定路徑。
將文件存在數據庫中將文件保存在數據庫中主要用了ASPUpLoad組件中文件對象的ToDatabase方法。源文件如下:
客戶端源文件(uploadToDB.htm):<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>文件上載客戶端</title>
</head>
<body>
<form method="POST" action="UploadToDB.asp" enctype="multipart/form-data"
name="FormUpload">
<p><input type="file" name="FileUpload"> </p>
<p><input type="submit" value="上載" name="B1"></p>
</form>
<p><a href="readFile.asp">讀取數據庫中文件</a></p>
</body>
</html>
服務器端源文件(uploadToDB.asp):<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>文件上載到數據庫</title>
</head>
<body>
<%Set Upload=Server.createobject("Persits.Upload.1")
Count=Upload.Save("e:\aspupload")
on error resume next
set FileObj=Upload.Files("FileUpload")
SQL="insert into upLoadFile (Title,FileName,Content) values (@#"&FileObj.Path&"@#,@#"&FileObj.Path&"@#,?)"
response.write SQL
FileObj.ToDatabase "DSN=FileUpload;UID=sa;",SQL
if Err<>0 then
Response.write "Error Saving the file:"&Err.Description
else
FileObj.delete
response.write "Su
clearcase/" target="_blank" >ccess!"
end if
%>
</body>
</html>
從數據庫中讀取文件內容并發送給客戶端瀏覽器從數據庫中讀取內容在發送給瀏覽器之前,首先必須讓瀏覽器知道內容的數據類型,這通過向客戶端發送ContentType描述實現。為簡單起見,這里假設發送的內容是Word文檔,并且顯示最新插入的記錄。源文件如下:
客戶端源文件為uploadToDB.htm(同上一部分的客戶端文件)。
服務器端源文件(readFile.asp):<%Response.Expires = 0
response.buffer=true%>
<%response.clear
Response.ContentType = "application/msword"
set conn=server.createobject("adodb.connection")
conn.open "DSN=FileUpload;UID=sa;"
set rs1=conn.execute("select maxid=max(id) from uploadFile")
SQL="select * from uploadFile where id="&rs1("maxid")
set rs=conn.execute(SQL)
Response.BinaryWrite rs("Content")
rs.close
rs1.close
conn.close
Response.End
%>
其中,Web Server向客戶端發送Content-Type="application/msword",使客戶端認為這是Word文檔,然后服務器從數據庫中讀取文件內容(為簡單起見,假定是數據庫中最后一條記錄),然后以二進制流的方式向客戶端發送(調用ASP內置對象Response的BinaryWrite方法)。當客戶端接收到這些內容后便自動啟動Word OLE服務,使Word控件嵌在瀏覽器IE中將收到的內容格式化顯示。
原文轉自:http://www.kjueaiud.com