检查是否在不使用 Request.Form 对象的情况下提交了表单?
Check if Form is Submitted Without Using the Request.Form Object?
有没有办法在不检查 Request.Form
对象的情况下确定是否提交了带有 id/name X 的表单?
我问的原因是因为我有一些通用代码(在每个页面加载时执行)检查 login/logout 表单是否已提交,这与某些文件上传页面冲突(因为它需要使用 Request.binaryRead
- 使用 Request.Form
后无法使用)。
人们通常如何处理这种情况?
这里有同样的问题,但没有好的答案。
Access form post Data without request.Form
enctype 属性和 HTML 表单元素影响请求的 Content-Type
header,它允许您确定提交的表单类型。
所以,你只需要检查 HTTP_CONTENT_TYPE
服务器变量。
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
'a POST request was made
If InStr(1, Request.ServerVariables("HTTP_CONTENT_TYPE"), "multipart", vbTextCompare) = 1 Then
'Content-Type header starts with multipart
'possible file upload form (<form method=post enctype=multipart/form-data ...)
'using Request.BinaryRead is OK
Else
'ordinary HTML form
'using Request.Form is OK
End If
End If
有没有办法在不检查 Request.Form
对象的情况下确定是否提交了带有 id/name X 的表单?
我问的原因是因为我有一些通用代码(在每个页面加载时执行)检查 login/logout 表单是否已提交,这与某些文件上传页面冲突(因为它需要使用 Request.binaryRead
- 使用 Request.Form
后无法使用)。
人们通常如何处理这种情况?
这里有同样的问题,但没有好的答案。 Access form post Data without request.Form
enctype 属性和 HTML 表单元素影响请求的 Content-Type
header,它允许您确定提交的表单类型。
所以,你只需要检查 HTTP_CONTENT_TYPE
服务器变量。
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
'a POST request was made
If InStr(1, Request.ServerVariables("HTTP_CONTENT_TYPE"), "multipart", vbTextCompare) = 1 Then
'Content-Type header starts with multipart
'possible file upload form (<form method=post enctype=multipart/form-data ...)
'using Request.BinaryRead is OK
Else
'ordinary HTML form
'using Request.Form is OK
End If
End If