从经典ASP中的表单中检索文本

时间:2011-09-17 17:10:13

标签: xml asp-classic

我想有一个表单输入加载文件(XML)并将其发布到ASP页面中的另一个文件。我不知道如何从表单中“获取”数据。这是非常基本的表单页面。 ASP页面返回错误500

<FORM METHOD=POST ENCTYPE="multipart/form-data" ACTION="/v/testasp300.asp">
    File to upload: <INPUT TYPE=FILE NAME="upfile"><BR>
    <INPUT TYPE=SUBMIT VALUE="Submit">
</FORM>

这是ASP页面的相关部分。

Dim objXML, x
Set objXML = CreateObject("MSXML2.DOMDocument")
objXML= Request.QueryString("upfile")
objXML.setProperty "SelectionLanguage", "XPath"

Dim xmldoc: set xmldoc = CreateObject("MSXML2.DomDocument")
xmldoc.async = false
Dim instruction
Set instruction = xmldoc.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8"" standalone=""yes""")
xmldoc.appendChild instruction 

Dim rss: set rss = xmldoc.createElement("rss")
xmldoc.appendChild rss

Dim itemNode2: Set itemNode2 = xmldoc.selectSingleNode(".//rss")
Dim name: Set name = xmldoc.createAttribute("xmlns:g") 
name.Value = "http://base.google.com/ns/1.0" 
itemNode2.attributes.setNamedItem(name)

Dim itemNode: Set itemNode = xmldoc.selectSingleNode(".//rss")
Dim version: Set version = xmldoc.createAttribute("version") 
version.Value = "2.0" 
itemNode.attributes.setNamedItem(version)

Dim channel: set channel = xmldoc.createElement("channel")
rss.appendChild channel

For Each x In objXML.documentElement.selectNodes(".//SAVED_EXPORT")

1 个答案:

答案 0 :(得分:1)

使用mime多部分编码实体主体从浏览器上传文件。这是ASP无法理解的实体主体格式,因此Request.QueryStringRequest.Form都不适用于您。

因此,为了使用接收到的数据,您的页面需要直接与请求中的二进制数据进行交互。由于您无法在服务器上安装任何组件,因此您需要一个适用于vanilla ASP服务器安装的解决方案。

简单地说,需要从Mime头中提取有用信息(例如文件名),然后将mime正文部分发送到文件。这是很多自我发明,但有一些免费的ASP包括那些可以为你做这件事。以下是一对夫妇的链接: -

这两者主要是将文件转储到文件系统,但是从那里你应该能够加载XML并继续你的工作。