LyfUpload組件方法介紹
2024-07-21 02:04:04
供稿:網友
組件方法介紹:
Request方法
得到上一個頁面中表單元素的值;
聲明:
Public Function Request(nm As String)
返回值:
為元素的值,字符串類型;
FileType方法
得到上傳文件的Content-Type
聲明:
Public Function FileType(strTag As String)
參數介紹:
strTag為Form中文件元素的名字,如"File1":
返回值:
文件上傳成功,返回文件的Content-Type
不成功,返回為""
SaveFile方法(1.2版更改)
上傳客戶端選擇的文件
聲明:
SaveFile(strTag As String, strPath As String,strway as boolean, Optional DestFileName As String) As String
參數介紹:
strTag為Form中文件元素的名字,如"File1":
strPath為要文件保存在本機的目錄;
strway為上傳文件方式,覆蓋方式上傳為true,不覆蓋上傳為false;
DestFileName(可選參數),代表文件上傳后重命名保存的名字;
返回值:
成功,返回上載的文件的名字;
不成功,如果上傳失敗,返回為"";
不成功,如果上傳文件后綴不對,返回為"0"(當設置了extName屬性時有效);
不成功,如果上傳文件的大小太大,返回為"1"(當設置了MaxSize屬性時有效);
不成功,如果上傳文件同服務器上已有文件相同,返回為"2"(當設置了參數strway為false時有效);
SaveFileToDb方法 (1.1版新功能)
上傳各類文件到數據庫中(同savefile方法不同的是直接保存文件到數據庫中而不保存為盤文件)
聲明:
SaveFile(strTag As String) As String
參數介紹:
strTag為Form中文件元素的名字,如"File1";
返回值:
成功,返回上載的文件的名字;
不成功,如果上傳失敗,返回為"";
不成功,如果上傳文件后綴不對,返回為"0"(當設置了extName屬性時有效);
不成功,如果上傳文件的大小太大,返回為"1"(當設置了MaxSize屬性時有效);
About方法
顯示LyfUpload組件的作者及版本號等信息
調用:
<%
dim ss
Set ss = Server.CreateObject("LyfUpload.UploadFile") ’創建LyfUpload組件對象
ss.about
%>
三、組件屬性介紹
ExtName屬性
限制上載文件的類型;
調用:
Set obj = Server.CreateObject("LyfUpload.UploadFile")
obj.extname="gif" ’設置文件上傳只能是gif文件
obj.extname="gif,jpg,bmp" ’多文件類型請用","隔開
MaxSize屬性
限制上載文件的大?。?nbsp;
調用:
Set obj = Server.CreateObject("LyfUpload.UploadFile")
obj.maxsize=2048 ’設置文件上傳的最大為2048個字節(2K)
FileSize屬性(1.1版新功能)
得到上載文件的大??;
調用:
Set obj = Server.CreateObject("LyfUpload.UploadFile")
response.write obj.filesize
DBContent屬性(1.1版新功能)
得到上載文件的實際內容,為二進制流(不能直接讀取,主要用于上載文件到數據庫中);
調用:
Set obj = Server.CreateObject("LyfUpload.UploadFile")
ss=obj.SaveFiletodb("file1") ’保存文件到服務器
aa=obj.filetype("file1") ’得到文件的Content-Type
’----文件上載到數據庫中---------
rs.AddNew
rs("name")=trim(aa)
rs("pic").AppendChunk obj.DBContent’BLOB數據不能直接賦值
rs.Update
rs.movelast
四、具體調用實例
普通上載:
1、調用顯示的htm或者asp文件中加入以下代碼:
<form method="POST" enctype="multipart/form-data" action="demo1.asp">
<p>文本框1: <input type="text" name="text1" size="20"><br>
選擇文件:<input type="file" name="file1"><br>
<input type="submit" value="上載"
style="background-color: rgb(0,0,255); color: rgb(255,255,0)"> </p>
</form>
注意:Form中一定要包含enctype="multipart/form-data"語句
2、后臺處理程序中加入下面代碼:
<%@Language=VBScript %>
<HTML>
<BODY>
<%
Set obj = Server.CreateObject("LyfUpload.UploadFile")
txt = obj.request("text1") ’得到form元素的值
Response.Write( "文本框1的輸入值是: " & txt)
Response.Write "<br>"
ss=obj.SaveFile("file1", "C: emp",true) ’保存文件到服務器
aa=obj.filetype("file1")
if ss<> "" then
Response.Write "選擇的文件已經上載到服務器!<br>"
Response.Write("文件名:" & ss)
Response.Write("<br>Content-Type:" & aa) ’得到Content-Type
end if
obj.about ’關于LyfUploa1.2
%>
</BODY >
</html>
文件上載到數據庫(此處僅加入gif圖形上載到數據庫中及從數據庫中讀取的功能,其它請看DEMO文件)
1、調用顯示的htm或者asp文件中加入以下代碼:
<form method="POST" enctype="multipart/form-data" action="demo4.asp">
<p>文本框1: <input type="text" name="text1" size="20"><br>
選擇文件:<input type="file" name="file1"><br>
<input type="submit" value="上載"
style="background-color: rgb(0,0,255); color: rgb(255,255,0)"> </p>
</form>
注意:Form中一定要包含enctype="multipart/form-data"語句
2、后臺處理程序中加入下面代碼:
<%@Language=VBScript %>
<%
’設置數據庫鏈接
strConn = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("new.mdb")
session("strconn")=strConn
Set dbc = Server.CreateObject("ADODB.Connection")
dbc.open strConn
set rs=server.CreateObject("adodb.recordset")
rs.Open "SELECT * FROM product",dbc,1,3
%>
<HTML>
<BODY>
<%
Set obj = Server.CreateObject("LyfUpload.UploadFile")
obj.extname="gif"
txt = obj.request("text1") ’得到form元素的值
Response.Write( "文本框1的輸入值是: " & txt)
Response.Write "<br>"
ss=obj.SaveFiletodb("file1") ’保存文件到服務器
aa=obj.filetype("file1") ’得到文件的Content-Type
if ss= "" then
Response.Write ("文件上傳失敗!")
elseif ss= "0" then
Response.Write ("文件尺寸過大!")
elseif ss= "1" then
Response.Write ("文件不是gif文件!")
else
’----文件上載到數據庫中---------
rs.AddNew
rs("name")=trim(aa)
rs("pic").AppendChunk obj.DBContent’BLOB數據不能直接賦值
rs.Update
rs.movelast
session("ID")=rs("ID")
rs.Close
dbc.Close
set rs=nothing
set dbc=nothing
’------------------------------上載到數據庫中結束
Response.Write "選擇的文件已經上載到服務器!<br>"
Response.Write("文件名:" & ss)
Response.Write("<br>Content-Type:" & aa) ’得到Content-Type
end if
obj.about ’關于LyfUploa1.1
%>
<br>
<a href="pictest.asp?ID=<%=session("ID")%>">點擊此處查看上傳后數據庫中的GIF文件!</a>
</BODY >
</html>
3、從數據庫中顯示圖形的asp頁面(pictest.asp)
<%
Function SetForDisplay(field, contentType) ’設置文件的大小及MIME類型
contentType = LCase(trim(contentType))
nFieldSize = field.ActualSize
bytes = field.GetChunk(nFieldSize)
Session("Bytes") = bytes
Session("Type") = contentType
End Function
%>
<%
sql = "select * from product where id=" & request("ID")
Set oRS = Server.CreateObject("ADODB.Recordset")
oRS.CursorLocation = 3
strConn = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("new.mdb")
oRS.Open sql, strConn
SetForDisplay oRS("pic"), "image/gif" ’"image/gif" 為MIME類型
’附:常見的MIME類型
’GIF文件 "image/gif"
’BMP文件 "image/bmp"
’JPG文件 "image/jpeg"
’zip文件 "application/x-zip-compressed"
’DOC文件 "application/msword"
’文本文件 "text/plain"
’HTML文件 "text/html"
’一般文件 "application/octet-stream"
Set oRS.ActiveConnection = Nothing
%>
<javascript src="theImg.asp"> ’調用處理頁面
<%response.write(Session("Type"))%>
4、最后處理頁面(theImg.asp)
<%
response.Expires = 0
response.Buffer = True
response.Clear
response.contentType = Session("Type")
response.BinaryWrite Session("Bytes")
Session("Type") = ""
Session("Bytes") = ""
response.End
%>
注意:要得到上一個頁面中的元素值,請使用LyfUpload組件的Request方法,使用Request.form會使得程序不能正常運行