使用 VBScript 类上传文件






4.91/5 (43投票s)
2002年5月30日
2分钟阅读

409066

9002
使用 VBScript 类上传文件。当您无法部署自定义 COM 对象时,此方法非常有用。
引言
市面上有很多组件可以允许您的 ASP 应用程序处理文件上传。但是,如果您处于不允许安装任何组件的情况下,那么这个 vbsUpload 将对您有所帮助。在我的学术项目中,我被禁止在服务器上使用这些组件,因此找到了一种从客户端上传文件的替代方案。
代码支持
- vbsUpload.asp
- 此文件包含文件上传的全部逻辑。Request.Binary read 方法用于读取客户端作为 POST 请求的一部分发送的原始数据。ASP 提供了一种应用 URL 编码规则的方法,但没有公开的解码方法。URLDecode 方法执行 URL 解码。然后解析原始数据,并将文件元素和表单元素分别保存在两个集合对象中。
- Process_File.asp
- 这是一个简单的 asp 文件,用于上传 multipart/form-data。一旦数据可用,此文件会将文件保存到硬盘上。文件内容如下:
<%@ Language="VBScript" %> <!-- #include file="vbsUpload.asp" --> <form method=post enctype="multipart/form-data" action=<%=request.servervariables("script_name")%>> Your File:<BR><input type=file name=YourFile><BR><BR> <input type=submit name=submit value="Upload"> </form> <% Dim objUpload, lngLoop If Request.TotalBytes > 0 Then Set objUpload = New vbsUpload For lngLoop = 0 to objUpload.Files.Count - 1 'If accessing this page annonymously, 'the internet guest account must have 'write permission to the path below. objUpload.Files.Item(lngLoop).Save "c:\Newupload\" Response.Write "File Uploaded" Next End if %>
- Process_DB.asp
- 这是另一个简单的文件,用于获取 multipart/form-data,但会将数据保存到数据库中。
- conn.asp
- 这用于使用 SQLServer 存储文件。我提供了创建表的脚本。您可以创建相同表格式并使用它。不要忘记填写正确的连接字符串。
- Download.asp
- 此文件用于从数据库中检索二进制数据并在 Web 上显示。
CreateTextFile
方法写入文件。在 Excel 和其他二进制文件的情况下,这不能正常工作。因此,请仅将您的使用限制为纯文本文件。当文件上传到数据库时,会记录内容类型,并将二进制内容作为 SQL Server 中的 Image 数据类型保存。使用 download.asp,二进制数据会以正确的内容类型写回客户端。因此,数据库文件上传和下载没有问题。您可以使用 Process_DB.asp 上传所有文件类型(Excel、jpg 等)。