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的写作
<form enctype="multipart/form-data" method="post" action="Upload.asp" name="Upload">
enctype="multipart/form-data" 是必须的,并且method必须是post
在上传Form内必须加上<input type="hidden" name="CopyrightInfo" value="http://www.chinaasp.com">,
否则上传组件将不能正常使用如果获得上传文件的文件个数
set FileUp=server.createobject("ChinaASP.UpLoad")
response.write "文件个数:"&fileup.files.count如果上传多个文件,如果确定对应file input上传的文件
如果上传form内的input的name是file1
set f=fileup.files("file1")
这样f就是你需要的文件如何获得文件的后缀名
fileext=getFileExtName(f.filename)
function getFileExtName(fileName)
dim pos
pos=instrrev(filename,".")
if pos>0 then
getFileExtName=mid(fileName,pos+1)
else
getFileExtName=""
end if
end function如何将文件内容保存进数据库
如果你使用sql server,需要定义一个image类型的字段
dim conn,rs
set conn=server.CreateObject("adodb.connection")
conn.open "testfile","sa","xxx"
set rs=server.CreateObject("adodb.recordset")
rs.Open "SELECT * FROM [file] where filename is null",conn,1,3
rs.AddNew
rs("filename")=f.filename
rs("filesize")=f.filesize
rs("filecontent").AppendChunk f.filecontent //BLOB数据不能直接赋值
rs.Update
rs.Close
conn.Close
set rs=nothing
set conn=nothing
相反的要将数据从数据库里面取出来,请参考下面的程序
dim conn,rs
dim content
set conn=server.CreateObject("adodb.connection")
conn.open "testfile","sa","xxx"
set rs=server.CreateObject("adodb.recordset")
rs.Open "SELECT * FROM [file] where id =" & id,conn,1,1
content=rs("filecontent").getChunk(clng(rs("filesize")))))
conn.Close
set rs=nothing
set conn=nothing
测试反馈 |
如果你在测试中发现任何问题,请mailto: shen.pengfei@263.net,或者请在我们的bbs进行讨论。
欢迎访问动感技术网络ASP技术站点 www.chinaasp.com
[全文完]