2024年5月26日发(作者:)
ASP AspUpload组件获取文件和Form信息
本章中介绍了如何通过AspUpload组件,实现上传文件的功能,本练习更进一
步,在AspUpload组件中使用Form和Files集合来访问Form表单中的每个项。在
本练习中,用户不仅可以选择要上传的文件,还可以对文件添加描述信息。如下所
示为包含上传域和描述输入域的Form表单代码,这里仅设置了两项:
这里要注意,对于输入文件描述文本域的type属性为TEXT,name属性为描述
名称。在单击“上传”按钮之后会看到上传文件的数量、文件名称及文件的大小,
而且还可以看到上传时输入的文本描述信息。如图5-8所示为本练习的运行效果。
图5-8 运行结果
编写代码时先创建AspUpload组件实例,再调用Save()方法上传文件,然后再
通过AspUpload组件提供的方法来显示上传信息。这部分代码如下所示:
<%
If request("act") = "upload" Then
%>
Set Upload = Object("")
Count = (h("."))
("
")
("
你已经成功上传"& Count& "个文件。
")("
文件信息:
")For Each File in
( & "=" & & " (" & & ") bytes
")
Next
("
表单其他项信息:
")For Each Item in
( & "=" & & "
")
Next
End If
注意,在本练习中Form表单现在有两种输入框,TYPE=FILE和TYPE=TEXT。
由于设置Form了ENCTYPE属性,因此不再能通过标准的ASP 集
合来访问Form变量。这里可以使用来解决这个问题。这个集合实际
上和一样,也就是说能通过整形或字串型索引访问元素。例如:
Set Item1 = ("DESCR1")
或者
Set Item1 = (1).
也能够使用上面示例代码显示的For-Each语句遍历集合中的项。Form集合包
含FormItem类型的对象,只有两个字串属性,Name和Value(默认属性)。
但是集合与的重要不同是仅仅包含非文件
项。AspUpload提供另外一个集合Files,来包含UploadedFile类型的对象,这种对
象代表已经上传的来自项的文件。与Form集合类型一样,Fi
les集合的项能够通过使用字串或者整形索引,或者一个For-Each语句访问,像上
面的示例显示的一样。
Files和Form集合在调用Save方法前都不会装入,因此在调用
前就查询这些集合不正确。例如,下面是错误的语句:
( ("Path") )
在本练习中通过UploadedFile对象的Path和Size属性获得了上传过的文件的目
标路径和文件大小。如果Form只包含一个文件输入框,
ME="ONLYFILE">,那么没有必要使用For-Each语句。可以改用如下代码:
("ONLYFILE").Path
或者
(1).Path
通过上面得学习,读者对AspUpload组件有了进一步的了解,下面再简单介绍
一下该组件的高级应用知识。
限制文件大小
在上传文件时,也时需要对允许上传的文件限制大小,从而防止服务器磁盘空
间拥塞。使用AspUpload组件可以很简单实现这个功能,方法是在调用Save之前
在先调用AspUpload组件的SetMaxSize方法,例如如下的示例:
Set Upload = Object("")
Size 50000, False
h(".")
上述语句中,将上传文件的大小限制在50000字节内。第二个可选参数指定超
出文件最大范围的部分是否应该被删除(如果设成false或者不设),或者作为错误
例外拒绝接收(如果设成True)。
强制使用特殊文件名
在默认情况下,AspUpload组件对于相同的文件名将覆盖上传路径中已有的文
件。如果不希望这样做,可以配置组件,为上传文件产生特殊的名字来防止覆盖已
有文件。方法是,在调用Save前设置上传管理器的OverwriteFiles属性:
iteFiles = False
如此设置后,AspUpload将在原来文件名后面加上用圆括号括起来的整数。例
如,如果文件已经存在于上传目录,并且另外一个同名文件正在上传,
AspUpload会将新文件存为MyFile(1).txt。如果上传更多的,将被存为M
yFile(2).txt, MyFile(3).txt,等等。
移动、拷贝、删除文件
文件上传对象提供了一些方法,供移动、拷贝或者删除上传的文件。这些方法
是:
( NewName As String )
( NewLocation As String, Optional Overwrite)
发布评论