用ASPSmartUpload组件实现ASP文件上传

文件上传对于网站后台管理而言是一个很重要的功能。我们在上传文件的同时,可以把文件名、文件类型、版本、文件大小、下载路径、文件说明等相关信息保存在数据库中,用数据库的强大功能来管理各种类型的文件,包括对文件进行关键字匹配检索。

目前使用得最广泛的网页开发技术非微软的ASP莫属,但遗憾的是ASP却没有文件上传功能,我们只能通过第三方组件来实现。事实上,的确有不少组件可以支持ASP文件上传,甚至还有开发者研究出了无组件上传的方法。但纵观这些技术,总有这样或那样的缺点,要么使用太复杂,不易控制;要么需要付费,免费的功能太简单,无法深入地控制。

笔者在本文里向大家介绍的这款文件上传组件----ASPSmartUpload,是由ASPSmart公司开发的,它功能强大,更重要的是它是完全免费的,非常符合我们“不花钱、多办事”的要求,是一个非常优秀的文件上传组件。简要地说,它有如下特点:

笔者在本文里向大家介绍的这款文件上传组件----ASPSmartUpload,是由ASPSmart公司开发的,它功能强大,更重要的是它是完全免费的,非常符合我们“不花钱、多办事”的要求,是一个非常优秀的文件上传组件。简要地说,它有如下特点:

● 可限制上传单一文件的大小及多个文件的全部大小

● 一次可上传多个文件

● 可同时传送一般的表彰字段与文件

● 可将上传文件(如图形文件、ZIP文件等)写入数据库

● 可限制上传文件的类型

● 允许从数据库或文件取回先前上传的内容

下面我们先来看一看ASPSmartUpload对象的使用方法和属性。

一、 注册ASPSmartUpload组件

要在ASP页面中使用ASPSmartUpload组件,首先需要在使用它的机器上注册。注册的步骤很简单:

1、 将下载的ASPSmartUpload.zip解压缩到某个目录,如c:/temp,由于ASPSmartUpload无法自动安装,所以在找到ASPSmartUpload.dll之后,需要手工在DOS方式下或“开始/运行”键入命令:

regsvr32.exe c:/temp/ASPSmartUpload.dll

系统会弹出一个窗口显示成功注册信息。

2、 接下来复制另一个dll文件ASPSmartUploadUtil.dll到windows/system32目录下,此时就完成了ASPSmartUpload组件的注册与安装。

二、 ASPSmartUpload对象简介

1、SmartUpload对象的属性和方法

SmartUpload对象可以在ASP中直接被创建,其语法为:

Set myUpload = server.CreateObject(“ASPSmartUpload.SmartUpload”)

myUpload.Collections | Properties | Methods

SmartUpload对象的主要属性与方法一览表:

属性/方法

 

说明

 

属性

 

TotalMaxFileSize

 

允许上传的全部文件的大小

 

MaxFileSize

 

允许上传的单个文件的大小

 

AllowedFilesList

 

允许上传的文件类型列表

 

DeniedFilesList

 

禁止上传的文件类型列表

 

DownloadBlockSize

 

一次读取文件的大小

 

TotalBytes

 

POST表单中的大小(以字节为单位)

 

方法

 

Upload

 

上传POST表单

 

Save

 

保存上传文件到指定目录

 

DownloadFile

 

下载一个文件

 

DownloadField

 

从数据库中下载先前上传的文件

 

FieldToFile

 

将文件上传到数据库中

 

UploadInFile

 

POST表单保存到文件中

 

SmartUpload有两个集合,分别是Files集合和Form集合,其层次关系为:

 

ASPSmartUpload

 

l   Files

 

n   file

 

l   Form

item

 

2、Files对象的属性和方法

myFiles.Collection | Properties | Method

它只有一个集合,为file集合。

Files对象的主要属性与方法一览表:

属性/方法

 

说明

 

属性

 

Count

 

文件对象的个数

 

TotalBytes

 

文件集合的大小(以字节为单位)

 

方法

 

Item(ID)

 

缺省方法,返回指定带有指定ID的文件对象

 

File对象的调用语法:

myFile.Properties | Methods

file对象的主要属性与方法一览表:

属性/方法

 

说明

 

属性

 

Name

 

POST表单项名

 

FileName

 

用户键入的文件名

 

FileExt

 

用户键入的文件后缀

 

FilePathName

 

用户键入的文件路径

 

ContentType

 

用户键入的文件类型

 

Size

 

文件大小

 

IsMissing

 

若未指定文件则为真

 

TypeMIME

 

用户键入的MIME类型

 

Count

 

文件对象的个数

 

TotalBytes

 

文件集合的大小(以字节为单位)

 

方法

 

SaveAs

 

保存文件(覆盖文件名相同的文件)

 

FileToField

 

上传文件到数据库

 

三、 多个文件上传

对ASPSmartUpload组件及其属性方法有了初步的了解后,我们来动手开发一个允许多个文件上传的页面,在上传的同时还可以给各个文件加上说明。

一般的HTML标记即可上传文件,只要将FORM标记的ENCTYPE属性赋为“multipart/form-data”值即可。在下面的例子中,我们最多可以同时上传四个文件。我们假定上传目录为当前目录下的upload子目录,由于要往upload目录中写入文件,因此必须将该目录中everyone的安全权限设为“修改”或“完全控制”。

表单文件upload_1.htm:

<script language="vbscript" type="text/javascript"></script>

 

 

文件名:

说明:

 

文件名:

说明:

 

文件名:

说明:

 

文件名:

说明:

 

 

在用户指定文件名、按了“upload now!”按钮后,会激发后端的ASP程序upload_1.asp实现上传操作,代码见下。笔者在代码中添加了详细的注释,相信应该不难理解。

文件upload_1.asp:

 

 

四、 上传文件到数据库

上面的例子是将文件上传到服务器的目录中。ASPSmartUpload组件还支持将文件上传到数据库。笔者以图象文件为例,向大家详细讲解如何将文件上传到SQL Server数据库。我们假定数据库所在服务器的IP地址为10.98.3.2,上传文件保存在数据库ASP的upload表中。

表单文件:upload_2.htm

<script language="VBScript" type="text/javascript"></script>

 

 

上传图片到数据库

 

 

 

图形文件类型:

GIF  

JPG  

BMP   

文件名:

文本说明:


 

文件名:

文本说明:


 

文件名:

文本说明:


 

文件名:

文本说明:


 

 

upload_2.asp文件:

 

 

 

通过上面的例子可以看出,用ASPSmartUpload组件进行文件上传,其实只需要三行语句:

set objUpload = Server.CreateObject("AspSmartUpload.SmartUpload")

objUpload.upload

intNo = objUpload.save(“upload”)

如果您对文件上传的控制不是很严格,那么只需要这三条语句就可以了。如果您想对上传进行严格的控制管理,如限制上传文件的大小、文件类型、存放目录等,ASPSmartUpload组件也完全能够做得到。再配合数据库,您可以对文件上传实行账号权限管理,严格分发各个账户所具有的不同的上传权力,避免恶意用户无限制地上传垃圾文件继而堵塞网络,撑爆服务器硬盘,充分保证网络的畅通与服务器的安全。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
参考:https://blog.csdn.net/sysdzw/article/details/80562058 微标ASP上传类 v1.3(无刷新、无组件、多文件上传,并且可查杀木马,utf-8格式) 请将本程序放到你的虚拟主机上运行,如果本地有iis也可以(注意定要把iis那儿的上传大小限制的200k改大点,参考下面第二点)。注意不要使用一些简易asp服务器,会有莫名其妙的错误。 如果只需要上传单文件可以把index.htm中的multiple="multiple"删除掉,对应的多文件前端显示及处理需要您对upload.asp进行修改调整,然后前端ajax获取数据进行处理。 关于“微标ASP上传类 v1.3”更新摘要: '========================================================================================================= '类 名 : 微标ASP上传类 v1.3(无刷新、无组件、多文件上传,并且可查杀木马,utf-8格式) '作 者 : sysdzw '联系QQ : 171977759 '网 站 : https://blog.csdn.net/sysdzw '版 本 : v1.0 以化境ASP组件上传作为初版v1.0, 之后进行了多项修改。 ' v1.1 修正了批量上传时file.add语句的报错问题。原因是键值冲突,本版本对键值做了唯一化处理。 2018-06-04 ' v1.2 修改文件格式为utf-8格式,以提高兼容性 2018-08-13 ' 修改代码中部分Charset="gb2312"为Charset="utf-8",以提高兼容性 ' 增加了图片木马检测功能。在上传的时候以gb2312格式读入字符串检测是否包含request等关键字 ' v1.3 改进了图片木马检测功能。加入了更多的关键字判断,让木马无处遁形 2018-10-04 '========================================================================================================= 相关参数设置: 1.ajax_upload.asp中的参数设置说明: (1)SavePath 上传目录,默认为“uploadfiles”。 2.clsUpload.asp中的参数设置说明: (1)AllowFiles 所允许上传的文件格式,默认为"jpg,jpeg,gif,png"。 (2)MaxDownFileSize 允许上传的文件大小,默认30M,注意iis默认限制就200k,您需要在iis那儿做设置,网站 - asp - 限制属性 - 最大请求实体主体限制,加上两个0,改成20000000,这样就改成20M了。 3.index.htm中的参数说明 在第32和37行,分别是判断类型和大小的,可根据需要修改。这里是前端检测文件类型和大小的,可减轻服务器工作。后端要等文件post完成才能开始检测,假设误选择了个几百兆的exe、rar等文件网页直接卡死。早发现文件早提示。 查杀图片木马原理:一些图片会被不法分子插入些可执行的asp代码,在被include的时候悄悄执行,我们将图片以文本方式进行检查,判断是否包含某些关键字,如果包含就停止上传,总而提高了服务器的安全。 本来想打包个图片木马文件供大家测试,担心上传会不通过,而且下载了后本机的360等软件也会报毒,这样会吓坏一批小白,以为我代码有什么后门。。其实就那么几行代码,大家可以逐行看,没什么机关的。如果一定想试验下代码的效果可以百度下asp图片木马制作方法,然后自己做个图马上传测试看看。 本程序由sysdzw提供。如有需技术支持可联系QQ:171977759

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值