2024年5月26日发(作者:)

ASP AspUpload组件获取文件和Form信息

本章中介绍了如何通过AspUpload组件,实现上传文件的功能,本练习更进一

步,在AspUpload组件中使用Form和Files集合来访问Form表单中的每个项。在

本练习中,用户不仅可以选择要上传的文件,还可以对文件添加描述信息。如下所

示为包含上传域和描述输入域的Form表单代码,这里仅设置了两项:

使用AspUpload组件获

取表单项       

文件1 *要上传的文件描述

文件2 *要上传的文件描述

TYPE=FILE SIZE=40 NAME="FILE2">

这里要注意,对于输入文件描述文本域的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)