ASP文件上传详解:原理与代码实现

需积分: 12 14 下载量 70 浏览量 更新于2024-09-27 1 收藏 66KB DOC 举报
ASP上传文件是一个常见的功能需求,特别是在Web开发中,允许用户从本地选择文件并将其发送到服务器进行处理。本文将详细介绍如何在ASP(Active Server Pages)环境中实现无组件的文件上传,包括前端HTML表单的设置和后台ASP代码的处理。 首先,前端HTML部分是实现上传的核心。使用`<input type="file">`元素让用户选择文件,关键在于设置表单的`enctype`属性为"multipart/form-data",这是为了支持二进制数据的传输,因为文件上传就是一种二进制数据的交换。表单的`method`属性通常设为"post",以将数据发送到服务器的upload.asp处理页面。 在upload.asp文件中,传统的ASCII数据获取可以通过`Request.Form`或`Request.QueryString`轻松完成,但文件上传不同。为了处理文件数据,我们需要使用`Request.BinaryRead`方法,该方法允许按字节读取HTTP请求中的二进制数据。需要注意的是,一旦调用了这个方法,就不能再使用`Request.Form`或`Request.QueryString`来获取非二进制数据,因为它们已被替换为二进制流。 获取到二进制数据后,我们使用自定义的`BinaryToString`函数将其转换回文本形式,以便于分析和展示。`BinaryToString`函数的作用是解码接收到的二进制数据,并可能使用特定的编码规则(如Base64或UTF-8)将其还原为可读字符串。在这个过程中,`Size`参数用于限制读取的字节数,以防止因过大文件导致内存溢出或性能问题。 在实际应用中,上传文件时要确保处理文件大小的限制,避免对服务器资源造成过大的压力,同时要考虑安全性,例如检查文件类型、防止恶意文件上传等。此外,为了提高用户体验,还可以提供进度条或预览功能,让用户知道上传过程的状态。 ASP上传文件代码涉及前端表单设置、HTTP请求的二进制读取、数据解码以及服务器端的安全性和性能优化。理解这些核心概念对于编写高效且安全的文件上传功能至关重要。
2018-10-18 上传
参考: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