FSO复制保存文件.VBScript/ASP页面使用子程序



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

目前,我拥有的FSO代码在一个单独的.asp页面上。当用户选择一个选项(使用值="xxx.asp…"调用代码页)时,会从页面调用此选项。这很好用。

问题是FSO代码页response.redirect到调用页,刷新会丢失数据。

我希望select/选项的"点击"通过将代码放在原始调用页面上的子例程中来调用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函数似乎不起任何作用。也许还有另一种方法可以在不刷新的情况下运行代码??欢迎任何建议。

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

标记谢谢标记

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

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

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

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

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

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

感谢您的帮助。我通过主页上隐藏的iframe调用asp页面来解决这个问题。干杯

最新更新