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 供您检查。