ASP无组件上传类化境HTTP上传程序是一种在ASP(Active Server Pages,动态服务器页面)环境下实现无需安装额外组件即可完成文件上传的技术。它依靠HTTP请求解析技术,通过编写ASP代码来实现客户端文件到服务器端的上传。 知识点概述: 1. ASP上传技术:ASP是微软公司开发的一种服务器端脚本环境,用来创建动态交互式网页。它允许开发者使用VBScript或JavaScript这样的脚本语言编写应用程序。ASP上传文件是常见的功能需求,传统上需要使用组件如FileSystemObject来实现,但无组件上传技术提供了另一种可能。 2. HTTP上传机制:在HTTP协议中,表单数据可以通过POST方法上传。无组件上传类正是利用解析HTTP POST请求中的表单数据来实现上传功能。当表单中有文件类型输入时,浏览器会将文件编码后随其他表单数据一起发送到服务器。 3. 编程实现:上述内容片段展示了无组件上传类的ASP代码实现。在这个实现中,创建了两个字典对象,分别用于保存上传的表单数据和文件数据。使用ADO Stream对象来接收和处理HTTP POST请求的数据流,从而解析出文件信息。 4. 关键步骤分析: - 从请求中获取二进制数据,并将其保存到Stream对象中。 - 读取Stream中的内容并根据HTTP协议规范,分隔出各个数据块。 - 判断数据块是否包含文件信息,如果包含,则创建FileInfo对象并赋值给objFile字典。 -FileInfo对象负责处理文件上传的细节,如文件名、文件类型和文件大小等。 5. 编码说明:代码中的“<SCRIPTRUNAT=SERVERLANGUAGE=VBSCRIPT>”指明ASP页面使用VBScript脚本语言编写,这是ASP开发中常用的脚本语言之一。 6. 文件处理:上传的文件通常需要通过某些方式处理,比如保存到服务器的文件系统中。FileInfo类会涉及到文件的保存,需要编写逻辑判断文件名是否合法,决定最终的文件存储路径和文件名,以及文件大小的校验等。 7. 安全性考虑:在实现无组件上传类时,还需要注意安全性的问题。比如,要限制上传文件的大小,防止大文件拖垮服务器;需要检查文件类型,防止恶意文件上传导致安全风险;以及设置上传目录的权限,防止上传文件被非法访问等。 8. 适用性:该技术主要适用于ASP环境,且不依赖于客户端的组件,适用于不能安装上传组件的环境。它的优点是兼容性好,几乎所有的浏览器和服务器都支持HTTP上传。 通过掌握上述知识点,可以更好地理解ASP无组件上传类化境HTTP上传程序的技术原理和实现方法,进一步开发出符合安全规范和性能要求的文件上传功能。
原版
upload_5xsoft.inc 文件内容
<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>
dim Data_5xsoft
Class upload_5xsoft
dim objForm,objFile,Version
Public function Form(strForm)
strForm=lcase(strForm)
if not objForm.exists(strForm) then
Form=""
else
Form=objForm(strForm)
end if
end function
Public function File(strFile)
strFile=lcase(strFile)
if not objFile.exists(strFile) then
set File=new FileInfo
else
set File=objFile(strFile)
end if
end function
Private Sub Class_Initialize
dim RequestData,sStart,vbCrlf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,theFile
dim iFileSize,sFilePath,sFileType,sFormValue,sFileName
dim iFindStart,iFindEnd
dim iFormStart,iFormEnd,sFormName
Version="化境HTTP上传程序 Version 2.0"
set objForm=Server.CreateObject("Scripting.Dictionary")
set objFile=Server.CreateObject("Scripting.Dictionary")
if Request.TotalBytes<1 then Exit Sub
set tStream = Server.CreateObject("adodb.stream")
set Data_5xsoft = Server.CreateObject("adodb.stream")
Data_5xsoft.Type = 1
Data_5xsoft.Mode =3
Data_5xsoft.Open
Data_5xsoft.Write Request.BinaryRead(Request.TotalBytes)
Data_5xsoft.Position=0
RequestData =Data_5xsoft.Read
iFormStart = 1
iFormEnd = LenB(RequestData)
vbCrlf = chrB(13) & chrB(10)
sStart = MidB(RequestData,1, InStrB(iFormStart,RequestData,vbCrlf)-1)
iStart = LenB (sStart)
iFormStart=iFormStart+iStart+1
while (iFormStart + 10) < iFormEnd
iInfoEnd = InStrB(iFormStart,RequestData,vbCrlf & vbCrlf)+3
tStream.Type = 1
tStream.Mode =3
tStream.Open
剩余20页未读,继续阅读
- wxcwxcxjl2017-07-26插件很实用
- penpaicc2014-06-27asp无组件上传类化境HTTP上传程序
- jianyemike2018-03-21怎么只有一个文件呢?
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- tomcat6.0配置oracle数据库连接池中文WORD版最新版本
- hibernate连接oracle数据库中文WORD版最新版本
- MyEclipse连接MySQL的方法中文WORD版最新版本
- MyEclipse中配置Hibernate连接Oracle中文WORD版最新版本
- MyEclipseTomcatMySQL的环境搭建中文WORD版3.37MB最新版本
- hggm - 国密算法 SM2 SM3 SM4 SM9 ZUC Python实现完整代码-算法实现资源
- SQLITE操作入门中文WORD版最新版本
- Sqlite操作实例中文WORD版最新版本
- SQLITE特性分析中文WORD版最新版本
- ORACLE创建表空间中文WORD版最新版本