Post 表单但丢失参数
Post Form but lost parameter
我正在 OS 从 x86 更新到 x64。
这是一个 .asp 项目,在 x86 上运行良好但在 x64 上运行不佳。
问题是 x64 无法获取 post 之后的表单参数。
tgtdir = mySmartUpload.Form("tgtdir").Values
tgtdir is empty!!!
是IIS设置问题吗?还是别的?
如果您有任何想法,请随时留下答案或评论。
我写的一些代码是...
In Main.asp
<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>
In fileupload.asp
<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>
现在您已经提供了一些最初遗漏的关键信息,我也许可以提供帮助。
虽然 about Request.Form
in conjunction with Request.BinaryRead()
is correct, I don't think that's the issue (confusion from the original revision of the question).
其实我相信什么@Vanquished Wombat :
So what is aspSmartUpload? This page says "A 32-bit library to facilitate file uploads via ASP Classic and IIS."
更近了。
所以我做了一些挖掘 (因为我自己不使用 aspSmartUpload) 结果 (根据 last reported scan of the site on Wayback Machine ) 2008 年 1 月之前的某个时间:
The aspSmart line of products has been discontinued.
虽然这本身没有任何问题,但确实让我觉得他们可能没有发布该组件的 64 位版本,所以问题将是 运行 32 -64 位环境中的位 COM DLL。
我已经多次谈到这个问题,但要完整了解如何让它发挥作用,请参阅 。
奇怪的是,您没有发布错误。如果 DLL 未在 32 位子系统中正确注册或 IIS 站点未 运行 宁它是 32 位模式下的应用程序池,我预计会出现某种错误。
我的建议是完成该答案中的步骤并检查您的设置,底部甚至还有一个 COM DLL Checklist 供您检查。
我正在 OS 从 x86 更新到 x64。
这是一个 .asp 项目,在 x86 上运行良好但在 x64 上运行不佳。
问题是 x64 无法获取 post 之后的表单参数。
tgtdir = mySmartUpload.Form("tgtdir").Values
tgtdir is empty!!!
是IIS设置问题吗?还是别的?
如果您有任何想法,请随时留下答案或评论。
我写的一些代码是...
In Main.asp
<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>
In fileupload.asp
<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>
现在您已经提供了一些最初遗漏的关键信息,我也许可以提供帮助。
虽然 Request.Form
in conjunction with Request.BinaryRead()
is correct, I don't think that's the issue (confusion from the original revision of the question).
其实我相信什么@Vanquished Wombat
So what is aspSmartUpload? This page says "A 32-bit library to facilitate file uploads via ASP Classic and IIS."
更近了。
所以我做了一些挖掘 (因为我自己不使用 aspSmartUpload) 结果 (根据 last reported scan of the site on Wayback Machine ) 2008 年 1 月之前的某个时间:
The aspSmart line of products has been discontinued.
虽然这本身没有任何问题,但确实让我觉得他们可能没有发布该组件的 64 位版本,所以问题将是 运行 32 -64 位环境中的位 COM DLL。
我已经多次谈到这个问题,但要完整了解如何让它发挥作用,请参阅
奇怪的是,您没有发布错误。如果 DLL 未在 32 位子系统中正确注册或 IIS 站点未 运行 宁它是 32 位模式下的应用程序池,我预计会出现某种错误。
我的建议是完成该答案中的步骤并检查您的设置,底部甚至还有一个 COM DLL Checklist 供您检查。