【问题标题】:How can I move a file to other directory using JavaScript?如何使用 JavaScript 将文件移动到其他目录?
【发布时间】:2013-07-11 06:22:03
【问题描述】:

我是 JavaScript 新手。我需要使用 JavaScript 将文件移动到另一个目录。如何使用 JavaScript 简单地移动该文件?

我该如何解决这个问题?

我试过了,但是没用....

<html>
<h2>Move file in JavaScript</h2>
<script language="javascript">
function moveFile(){
        var object = new ActiveXObject("Scripting.FileSystemObject");
        var file = object.GetFile("Table1.xml");
        file.Move("./Docus/");
        document.write("File is moved successfully");
}
</script>
<form>
<input type="Button" value="Move File" onClick='moveFile()'>
</form>
</html>

请问,我该怎么做?

【问题讨论】:

  • 我当然希望你不能那样做。这似乎是一个巨大的安全问题......另外,你确实意识到这只能在 IE 中工作,对吧?
  • @tjameson 哦,我该如何解决这个问题?....知道吗?
  • 您要解决的具体问题是什么?为什么需要移动客户端计算机上的文件?
  • 要明确一点:您想在浏览器中运行某些东西,然后重命名客户端计算机上的文件?
  • 你不应该通过客户端代码来解决这个问题,除非你想让你的系统有一天被一个玩得开心的孩子或一个年长的黑客炸成碎片

标签: javascript jquery


【解决方案1】:

试过这段代码,完美运行:

function moveFile(){
   var object = new ActiveXObject("Scripting.FileSystemObject");
   var file = object.GetFile("C:\\wamp\\www\\phptest.php");
   file.Move("C:\\wamp\\");
   document.write("File is moved successfully");
}

在您的代码中,问题似乎出在文件路径“./Docus/”中。 尝试放绝对路径,然后检查。

【讨论】:

  • 正确吗?但它在 chrome、firefox 中不起作用“错误:未捕获的 ReferenceError:ActiveXObject 未定义” ..
  • ActiveX 仅在 IE 浏览器下工作(Active Scripting)。如果你想让它在 Chrome 和 Firefox 下运行,你应该参考这些链接:ActiveX in ChromeActiveX in FF
  • 即使在 Edge 中我也无法运行此代码:“未捕获的 ReferenceError:ActiveXObject 未定义”我希望这样的代码可以在本地移动一个 .txt 文件以在我的应用程序中使用。
【解决方案2】:

据我了解,您要解决的问题是创建某种丰富的 UI(用户界面),用户可以在其中通过目录树拖放文件。

这当然是可能的,但正确的方法——我的意思是让它跨浏览器兼容和安全——是在它后面运行一个服务器端脚本(PHP、ASP.Net 等),提供所有的数据和文件系统操作,上面有一个安全层。

如果您想要一个不安全的、仅限 MS Internet Explorer 的解决方案 - 确保您可以使用 ActiveX 对象。

【讨论】:

    猜你喜欢
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-01
    • 2020-11-23
    相关资源
    最近更新 更多