组件方法介绍:
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属性
限制上载文件的大小;
调用:
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:\temp",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会使得程序不能正常运行