上传后访问请求(ASP经典)
Access request after upload (ASP classic)
因此,正如我发现的那样,当我有一个带有 enctype="multipart/form-data"
的表单并上传文件时,我无法再访问对象 request
。显示以下错误:
Cannot use the generic Request collection after calling BinaryRead.
在检查了一些资源之后,我偶然发现了一个声明,上面写着:"This is by design"。嗯,好吧,这里不是来评判设计决策的。
为了让您快速了解一下,让我向您介绍一下代码:
if request("todo") = "add" then
Set Form = New ASPForm
category = request("category")
title = request("title")
if len(Form("upload_file").FileName) > 0 then
filename = Form("upload_file").FileName
DestinationPath = Server.mapPath("personal/allrounder/dokumente/")
Form.Files.Save DestinationPath
end if
end if
到目前为止没有什么特别的。但是后来,当我尝试访问我的 request
对象时,出现了上述错误:
<% if request("todo") = "new" then %>
...
我现在的问题是,如何摆脱它或修复它。如果有其他方法,我不想在弹出窗口中打开上传。这是我唯一能想到的解决方案。
完美地是一个对象,它检查 Form
和 request
。或者,也许在文件顶部进行检查,我必须使用哪个对象?
感谢您的任何建议。
曾经有一个非常流行的ASPclass/component解决了ASP文件上传问题。该组件的站点已被删除,但代码镜像如下:
https://github.com/romuloalves/free-asp-upload
您可以将此 ASP 页面包含在您自己的页面中,并在您的页面上实例化 class 以访问表单中的文件以及表单变量。这是一段示例代码(Upload.Form
访问表单字段):
Dim uploadsDir : uploadsDir = server.mapPath(".") ' whatever you want
Dim Upload, ks, fileKey, mailto
Set Upload = New FreeASPUpload
call Upload.Save(uploadsDir)
ks = Upload.UploadedFiles.keys
for each fileKey in ks
Response.write(fileKey & " : " & Upload.UploadedFiles(fileKey).FileName & "<br/>")
next
mailto = Upload.form("mailTo")
Set Upload = Nothing
如果你想坚持自己的实现,你可能可以通过查看他们用来这样做的代码来弄清楚如何在 multipart/form-data 编码的数据流中获取表单变量。
因此,正如我发现的那样,当我有一个带有 enctype="multipart/form-data"
的表单并上传文件时,我无法再访问对象 request
。显示以下错误:
Cannot use the generic Request collection after calling BinaryRead.
在检查了一些资源之后,我偶然发现了一个声明,上面写着:"This is by design"。嗯,好吧,这里不是来评判设计决策的。
为了让您快速了解一下,让我向您介绍一下代码:
if request("todo") = "add" then
Set Form = New ASPForm
category = request("category")
title = request("title")
if len(Form("upload_file").FileName) > 0 then
filename = Form("upload_file").FileName
DestinationPath = Server.mapPath("personal/allrounder/dokumente/")
Form.Files.Save DestinationPath
end if
end if
到目前为止没有什么特别的。但是后来,当我尝试访问我的 request
对象时,出现了上述错误:
<% if request("todo") = "new" then %>
...
我现在的问题是,如何摆脱它或修复它。如果有其他方法,我不想在弹出窗口中打开上传。这是我唯一能想到的解决方案。
完美地是一个对象,它检查 Form
和 request
。或者,也许在文件顶部进行检查,我必须使用哪个对象?
感谢您的任何建议。
曾经有一个非常流行的ASPclass/component解决了ASP文件上传问题。该组件的站点已被删除,但代码镜像如下:
https://github.com/romuloalves/free-asp-upload
您可以将此 ASP 页面包含在您自己的页面中,并在您的页面上实例化 class 以访问表单中的文件以及表单变量。这是一段示例代码(Upload.Form
访问表单字段):
Dim uploadsDir : uploadsDir = server.mapPath(".") ' whatever you want
Dim Upload, ks, fileKey, mailto
Set Upload = New FreeASPUpload
call Upload.Save(uploadsDir)
ks = Upload.UploadedFiles.keys
for each fileKey in ks
Response.write(fileKey & " : " & Upload.UploadedFiles(fileKey).FileName & "<br/>")
next
mailto = Upload.form("mailTo")
Set Upload = Nothing
如果你想坚持自己的实现,你可能可以通过查看他们用来这样做的代码来弄清楚如何在 multipart/form-data 编码的数据流中获取表单变量。