站长网_站长创业_站长主页_站长之家_易采站长站

会员投稿 投稿指南 站长资讯通告: ASP实现文件上传的方法
搜索:
您的位置: 主页 > 教程 > 网页编程 > ASP编程 > » 正文

ASP实现文件上传的方法

来源: 易采站长站

一.基于ASP的文件上传实现原理分析
基本原理是:采用ADO Stream对象的BinaryRead方法将FORM中的所有数据读出,从中截取出所需的文件数据,以二进制文件方式存盘。
下面是上传文件页面的一个例子(upload.htm):

<html> <body> <form name="Upload" Method="Post" Enctype="multipart/form-data" Action="Upload.asp"> <input type="file" name="FileName"> <INPUT TYPE="Submit" VALUE="Upload"></TD> </form> </body> </html>

程序中使用了文件对象,这样在Upload.asp中采用BinaryRead方法读来的原始数据就不仅仅是选择的文件本身的数据,还包含该文件在用户硬盘上的路径、类型、提交页面的表单域名等相关信息的描述,这样我们就需从中提取出文件的具体内容。根据分析,数据的头部信息与数据的分界线是两对回车换行符,尾部也有分隔信息,我们可以采用类似以下的方法获取文件数据。

Dim FormData.FormSize,DataStart,CLStr,DivStr FormSize=Request.TotalBytes FormData=Request.BinaryRead(FormSize) CLStr=ChrB(13)&ChrB(10) DataStart=InStrB(FormData.CLStr&CLStr)+4 '4是两对回车换行符的长度 DivStr=LeftB(FormData,InStrB(FormData,CLStr)-1) DataSize=InStrB(DataStart+1,FormData,DivStr)-DataStart-2 FormData=MidB(FormData,DataStart,DataSize) FormData就是文件的内容了。

中间根据需要,可进行相应的处理。最后的工作就是将文件保存了。保存的方法可以有两种:一种是利用VB或VC之类程序中的二进制文件操作方法,在工程中加入适当的类型库,最终编译成DLL文件,使用时再将该DLL文件注册就可以了。文件存贮程序如下:

Public Function SaveFile(Pathname As String) As String      Dim objContext As ObjectContext      Dim objRequest As Request   Set objContext=GetObjectContext()      Set objRequest=objContext("Request")      '以下的一段代码是进行文件存贮的有关操作   Dim FormData() As Byte,CLStr,DivStr      Dim DataStart As Long,DataSize As Long      DataSize=objRequest.TotalBytes      Redim FormData(DataSize-1)      FormData=objRequest.BinaryRead(DataSize)      CLStr=ChrB(13) & ChrB(10)      DataStart=InStrB(FormData,CLStr & CLStr)+4      DivStr=LeftB(FormData,InStrB(FormData,CLStr)-1)      DataSize=InStrB(DataStart+1,FormData,DivStr)-DataStart-2      FormData=MidB(FormData,DataStart,DataSize)      '创建一个二进制文件并将FormData写入其中      Open Pathname For Binary As 1      Put #1,,FormData      Close #1      SaveFile="OK!"    End Function

第二种方法是利用ADO STREAM中提供的二进制文件操作方法来完成,保存文件的语句是: StreamOBJ.SaveToFile (fileName,2)。在 这种操作中,我们可以将有关的操作存放在一个类文件中,在应用时,直接将该类文件包含在ASP程序中就可以了。具体处理方法,请参阅有关介绍。

Tags:
最新图文资讯
1 2 3 4 5 6
相关文章列表:
易采站长站 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助 -