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

时间:2012-01-06 14:26:42

标签: javascript vbscript subroutine filesystemobject

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

目前我所拥有的FSO代码位于单独的.asp页面上。当用户选择一个选项(使用value =“xxx.asp ...”来调用代码页)时,从页面调用此方法。这很好。

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

我希望select / option的'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函数似乎什么都不做。也许还有另一种方法可以运行代码而不需要刷新?欢迎任何建议。

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

谢谢 标记

2 个答案:

答案 0 :(得分:1)

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

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

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

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

页面 - &gt;请求 - &gt;服务器 - &gt;回复(新页面)

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

答案 1 :(得分:0)

感谢任何想要帮助的人。我通过在主页上通过隐藏的iframe调用asp页面来解决这个问题。欢呼声。