Post表单但丢失了参数
我现在正在进行从x86到x64的操作系统更新 下面是一个.asp项目,它在x86上运行良好,但在x64上运行不佳 问题是x64在post后无法获取表单参数Post表单但丢失了参数,post,dll,asp-classic,com,64-bit,Post,Dll,Asp Classic,Com,64 Bit,我现在正在进行从x86到x64的操作系统更新 下面是一个.asp项目,它在x86上运行良好,但在x64上运行不佳 问题是x64在post后无法获取表单参数 tgtdir = mySmartUpload.Form("tgtdir").Values tgtdir是空的 IIS设置有问题吗?还是别的什么 如果您有任何想法,请随时留下答案或评论 我写的一些代码是 在Main.asp中 在fileupload.asp中 既然您提供了一些最初缺失的关键信息,我或许可以提供帮助 虽然将Request.F
tgtdir = mySmartUpload.Form("tgtdir").Values
tgtdir是空的
IIS设置有问题吗?还是别的什么
如果您有任何想法,请随时留下答案或评论
我写的一些代码是
在Main.asp中
在fileupload.asp中
既然您提供了一些最初缺失的关键信息,我或许可以提供帮助 虽然将
Request.Form
与Request.binarydead()
结合使用是正确的,但我认为这不是问题所在(源代码的混淆)
事实上,我相信:
那么什么是智能上传?表示“一个32位库,用于促进通过ASP Classic和IIS上传文件。”
更近了
所以我做了一点挖掘(因为我自己不使用aspSmartUpload),结果(根据on)在2008年1月之前的某个时候:
aspSmart系列产品已经停产
虽然这本身并没有什么问题,但它确实让我觉得他们可能没有发布该组件的64位版本,所以问题是试图在64位环境中运行32位COM DLL
我已经说过很多次了,但是要想了解使它工作所需的全部细节,请参阅
奇怪的是,你没有发布错误。如果DLL没有在32位子系统中正确注册,或者IIS站点没有在32位模式下运行它的应用程序池,我预计会出现某种错误
我的建议是按照答案中的步骤进行检查,并对照您的设置进行检查,底部甚至有一个COM DLL检查表供您检查。您是否使用fileupload.asp中的上载组件?也许你也应该显示该页面的代码。即使我注释掉了更新组件,仍然无法获取参数。由于你没有描述是否出现错误等,所以不清楚发生了什么。已经说过,如果你使用的是上传组件,那么表单(你没有显示,所以只能假设)很可能使用,表示
Request.BinaryRead()
将在fileupload.asp
中使用。有趣的事实是,一旦调用了Request.BinaryRead()
,就会使Request.Form
集合无效,这就是为什么大多数上载组件都提供自己的集合来存储表单参数。这可以解释为什么Request.Form
调用不起作用。但如果是这种情况,则仍会出现错误,但您甚至没有说您收到了错误。简单地说,这不是一个很好的问题,请尝试回答这个问题以提供一个合适的答案。那么什么是aspSmartUpload?表示“一个32位库,用于通过ASP Classic和IIS方便文件上载。”aspSmartUpload需要两个dll。当我将它放入\\nposvrtw1t2\C$\Windows\SysWOW64并重新注册它们时!很高兴知道,IIS应用程序池已经在32位模式下运行。此外,不需要将DLL移动到SysWOW64目录中。我的首选方法是导航到文件所在的文件夹,然后显式调用regsvr32.exe,在您的示例中,它将是aspSmartUpload目录中的C:\Windows\SysWOW64\regsvr32 dllfilename.dll
。将DLL移动到系统文件夹中也可以,但这不是必需的。
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY topmargin=4 leftmargin=10 bgcolor=wheat>
<FORM id=form01 name=form01 align=center enctype="multipart/form-data">
<TABLE width=100% align=center>
<TR>
<TH>
<FIELDSET>
<TABLE>
<TR>
<TD colspan=2>
<INPUT type=file id=file01 name=file01 style="WIDTH: 400 px" value="Preview">
<TR>
</TABLE>
</FIELDSET>
</TH></TR>
</TABLE>
<INPUT type=hidden id=tgtdir name=tgtdir value="AAA">
</FORM>
<DIV>
<IFRAME id=frameUpload name=frameUpload >
</IFRAME>
</DIV>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
On Error Resume Next
Dim mySmartUpload
Dim intCount
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
mySmartUpload.CodePage = "utf-8"
mySmartUpload.Upload
Set fso = Server.CreateObject("Scripting.FileSystemObject")
tgtdir = mySmartUpload.Form("tgtdir").Values
intCount = mySmartUpload.Save(tgtdir & "\")
%>
</BODY>
</HTML>