LyfUpload组件1.1-使用手册 2000.4.3 | 作者:刘玉锋 |
文件上传组件。。。 | 主页:VB爱好者(http://vbfans.yeah.net) |
简介: LyfUpload 是一个免费
的ASP组件,遵从 RFC-1867 HTTP
请求, 它可以在ASP页面中接收客户端浏览器使用 本版本支持单文件上载、多文件上载、限制文件大小上载、限制某一类型文件上载、文件上载到数据库、数据库中读取文件及文件上载重命名等功能。 功能:
运行环境:
主要文件: lyfupload.dll 文件上传组件 readme.txt 使用说明(txt版本) RFC1867.txt 文件上传标准 default.htm 演示用起始页面 help.htm 使用说明(html版本) demo1-demo6.htm(asp) 演示文件 使用方法: 一、注册组件 使用 regsvr32 lyfupload.dll 命令注册! 二、组件方法介绍: Request方法 得到上一个页面中表单元素的值; 声明: Public Function Request(nm As String) 返回值: 为元素的值,字符串类型; FileType方法 得到上传文件的Content-Type 声明: Public Function FileType(strTag As String) 参数介绍: strTag为Form中文件元素的名字,如"File1": 返回值: 文件上传成功,返回文件的Content-Type 不成功,返回为"" SaveFile方法 上传客户端选择的文件 声明: SaveFile(strTag As String, strPath As String, Optional DestFileName As String) As String 参数介绍: strTag为Form中文件元素的名字,如"File1": strPath为要文件保存在本机的目录; DestFileName(可选参数),代表文件上传后重命名保存的名字; 返回值: 成功,返回上载的文件的名字; 不成功,如果上传失败,返回为""; 不成功,如果上传文件后缀不对,返回为"0"(当设置了extName属性时有效); 不成功,如果上传文件的大小太大,返回为"1"(当设置了MaxSize属性时有效); SaveFileToDb方法 (1.1版新功能) 上传各类文件到数据库中(同savefile方法不同的是直接保存文件到数据库中而不保存为盘文件) 声明: SaveFile(strTag As String) As String 参数介绍: strTag为Form中文件元素的名字,如"File1"; 返回值: 成功,返回上载的文件的名字; 不成功,如果上传失败,返回为""; 不成功,如果上传文件后缀不对,返回为"0"(当设置了extName属性时有效); 不成功,如果上传文件的大小太大,返回为"1"(当设置了MaxSize属性时有效); About方法 显示LyfUpload组件的作者及版本号等信息 调用: <% 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") '保存文件到服务器 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.1 %> </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 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 %> <br> <a href="pictest.asp?ID=<%=session("ID")%>">点击此处查看上传后数据库中的GIF文件!</a> </BODY > </html> 3、从数据库中显示图形的asp页面(pictest.asp) <% Function SetForDisplay(field, contentType) '设置文件的大小及MIME类型 nFieldSize = field.ActualSize bytes = field.GetChunk(nFieldSize) 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会使得程序不能正常运行 其它功能的实例请看其它的演示程序的代码!!!! 如果在使用中发现任何问题或者好的建议请同我联系!!! 我的Email地址为:coolknight@263.net
|