该组件的说明是:
China ASP File Upload Component for ASP Beta 3 (build 33)
Copyrigt (C) China ASP , 1999 All Right Reserved
--------------------------------------------------------------------------------
许可协议
请参阅license.txt
功能简介
支持上传多个文件
可以将上传的文件改名保存
可以同时使用其它的form input,携带附加的信息,例如,文件说明。
可以判断上传文件的大小、文件类型
支持将文件内容保存进数据库
无需IIS将目录设置为Write(如果是NTFS文件系统,其安全性需要设置,可以简单的设置为everyone full control,或者设置为IUSR_SERVER full control)
适用系统
适用于 NT4.0 server 中文版 + IIS 4
组件属性
Files
只读
返回一个Collection对象,包含上传文件的信息(ContentType、文件名、上传Form内的Input名称、文件大小、及文件的两进制内容)
Form
只读
返回一个Collection对象,包含上传form内其他类型input(text/button等)的内容(form内input名称、该input的value)
UsedTime
只读
Com处理上传信息所使用的时间
CopyrightInfo
只读
版权信息
Files元素的属性
controlName
只读
上传Form内对应的file类型input的名称
IsEmpty
只读
是否是Empty,如果上传Form的file类型的input没有输入任何路径,则上传后其对应的files元素的IsEmpty值就为true,反之为false
FileName
只读
上传的原文件名
FileSize
只读
文件大小,如果上传的原文件不存在,则FileSize为0
ContentType
只读
上传文件内容的Mime类型,如text/plain
FileContent
只读
文件的两进制内容
Files元素的方法
SaveAs filename filename是是文件路径,如果是url,需要用server.mappath()进行转化
Form元素的属性
controlName
只读
上传Form内对应的input/textarea/button/...的名称
value
只读
输入/选择的内容
使用说明
请参考Samples.zip,实例程序将上传文件到其子目录Upload下面
上传form的写作
1<form action="Upload.asp" enctype="multipart/form-data" method="post" name="Upload">
2enctype="multipart/form-data" 是必须的,并且method必须是post
3在上传Form内必须加上<input name="CopyrightInfo" type="hidden" value="http://www.chinaasp.com"/>,
4否则上传组件将不能正常使用
5
6如果获得上传文件的文件个数
7set FileUp=server.createobject("ChinaASP.UpLoad")
8response.write "文件个数:"&fileup.files.count
9
10如果上传多个文件,如果确定对应file input上传的文件
11如果上传form内的input的name是file1
12set f=fileup.files("file1")
13这样f就是你需要的文件
14
15如何获得文件的后缀名
16fileext=getFileExtName(f.filename)
17function getFileExtName(fileName)
18dim pos
19pos=instrrev(filename,".")
20if pos>0 then
21getFileExtName=mid(fileName,pos+1)
22else
23getFileExtName=""
24end if
25end function
26
27如何将文件内容保存进数据库
28如果你使用sql server,需要定义一个image类型的字段
29dim conn,rs
30set conn=server.CreateObject("adodb.connection")
31conn.open "testfile","sa","xxx"
32set rs=server.CreateObject("adodb.recordset")
33rs.Open "SELECT * FROM [file] where filename is null",conn,1,3
34rs.AddNew
35rs("filename")=f.filename
36rs("filesize")=f.filesize
37rs("filecontent").AppendChunk f.filecontent //BLOB数据不能直接赋值
38rs.Update
39rs.Close
40conn.Close
41set rs=nothing
42set conn=nothing
43相反的要将数据从数据库里面取出来,请参考下面的程序
44dim conn,rs
45dim content
46set conn=server.CreateObject("adodb.connection")
47conn.open "testfile","sa","xxx"
48set rs=server.CreateObject("adodb.recordset")
49rs.Open "SELECT * FROM [file] where id =" & id,conn,1,1
50content=rs("filecontent").getChunk(clng(rs("filesize")))))
51conn.Close
52set rs=nothing
53set conn=nothing
54
55
56
57
58\---------------------------------------------------------------
59
60给你一个以前的代码,
61
62'如何打开并输出一个数据库中的文件流?
63'按普通方式打开数据库,之后求得该文件字节大小,在网页中输出该文件MIME类型,再用binarywrite输出
64'之前必须将以下语句放在一个页面中,而在另一个页面对之进行调用输出显示。
65Set rs = Server.CreateObject("ADODB.recordset")
66sql="select * from b_hn_sgbb_rtu where sgbh='02713700001' and xh='2'"
67rs.open sql,cn,1,1
68
69'以下两句是在网页中打开WORD文档
70'tu_size=rs("tu").ActualSize
71'Response.ContentType = rs("types")
72'Response.BinaryWrite rs("tu").getChunk(tu_size)
73
74'以下三句是将数据库中的流文件当作一个文件,可以打开也可以下载回来
75Response.ContentType = "Application/octet-stream"
76tu_size=rs("tu").ActualSize
77Response.AddHeader "Content-Disposition", "attachment; filename=" & rs("filename")
78Response.BinaryWrite rs("tu").getChunk(tu_size)
79
80rs.close
81
82'常见文件的MIME类型
83'GIF文件 "image/gif"
84'BMP文件 "image/bmp"
85'JPG文件 "image/jpeg"
86'zip文件 "application/x-zip-compressed"
87'DOC文件 "application/msword"
88'文本文件 "text/plain"
89'HTML文件 "text/html"
90'一般文件 "application/octet-stream"</form>