1

我正在尝试使用 FSO = Server.CreateObject("Scripting.FileSystemObject") 使用名为“csImageFile”的 ASP 实用程序来复制/保存文件

目前我拥有的 FSO 代码位于单独的 .asp 页面上。当用户选择一个选项(使用 value="xxx.asp..." 调用代码页)时,从页面调用它。这工作正常。

问题是 FSO 代码页 response.redirects 到调用页并且刷新丢失数据。

我希望选择/选项的“onlclick”通过将代码放在原始调用页面上的子路由中来调用 FSO 代码(因此避免刷新)。我已经通过各种方式尝试过,但没有成功。我目前调用一个 js 函数,该函数本身然后调用一个 VBscript 子例程。这可能不正确,但我已经尝试了很多排列,我现在有点迷失了。

在页面上

<option onclick="calljsSub()"...

脚本

<script language="JavaScript">
    function calljsSub(){
    //alert("js called");
    VBFunc();
    }
</script>

<script language="VBScript">
    Sub VBFunc()
        SET FSO = Server.CreateObject("Scripting.FileSystemObject")
        If FSO.FileExists ( "path to file") Then
                Set Image = Server.CreateObject("csImageFile.Manage")
                Image.ReadFile "path to file"
                Image.WriteFile Server.MapPath("path to new file")
        end if
        Set FSO = Nothing
    End Sub

VBScript 函数似乎什么都不做。也许还有另一种在不刷新的情况下运行代码的方法?欢迎任何建议。

我会非常感谢任何建议,因为我从圣诞节前就一直在尝试解决这个问题。

马克谢谢马克

4

2 回答 2

1

这里的问题是您混淆了客户端上发生的事情和服务器上发生的事情:

click event = client
javascript code = client
VB Script = server

您不能从客户端调用服务器上的函数 - 它们是不同的机器。你需要调用一个URL,即一个ASP页面。这个 ASP 页面需要查看正在发出的请求,获取发送的任何请求参数并根据这些参数决定运行哪些代码 - 在本例中是您的 VBFunc()。

这是网页工作方式的最基本功能:

页面 -> 请求 -> 服务器 -> 响应(新页面)

是的,您可以使用 AJAX 技术在不刷新的情况下运行代码,但首先要尝试使基本工作正常。

于 2012-01-06T15:31:47.220 回答
0

感谢任何试图提供帮助的人。我已经通过主页上的隐藏 iframe 调用 asp 页面来解决这个问题。干杯。

于 2012-01-17T18:39:59.870 回答