这是我通过谷歌找到的脚本。我已经编辑了文件名。
这是:
<html>
<head>File copy in progress...Don't close this page.</head>
<script type="text/javascript">
// initialize ActiveXObject and create an object of Scripting.FileSystemObject.
var fso = new ActiveXObject("Scripting.FileSystemObject");
// copies a file to another location + overwrites the file if already exits
fso.CopyFile("file1.txt", "file2.txt", 1);
fso = null;
</script>
</html>
但是它没有复制任何东西?实际上在JavaScript中是否可以复制文件?
答案 0 :(得分:3)
在评论中证明了提问者的目标是:
通过http(s)服务html页面 包含直接复制/修改服务于html页面的服务器上的文件的JavaScript。
我的朋友的回答是,据我所知,你不能直接(仅使用浏览器中的客户端javascript)这样做。
首先,HTTP(S)不是文件协议,比如说.. ftp。
所以,最终你要么找到一种与网络文件协议(例如ftp)通过客户端javascript进行通信的方法(我不知道这样一般的lib,尽管你可以在IE中执行此操作,但您需要一些开发人员许可注册表密钥来访问Windows上的完整网络功能,并且您仍然需要自己创建包装库(或购买除了界面的其余部分之外,还要使用特定的activeX插件等进行通信。
您在答案中发布的特定于IE的代码也不是要这样做(尽管它可以访问您有权访问的Windows共享)。
很明显,我们可以忘记这个选择。
所以,既然你说你已经知道如何在php中做这些事情,你的下一步可能是添加一个javascript驱动/增强(想想树视图等)html-gui发送命令(post或get)到实际上复制/修改服务器上文件的php脚本。最后,您只需重新创建一个php文件管理器(谷歌提示)。
如果您使用node.js方式,那么这种方式只会替换php,其余方法仍然相同:后端执行命令并将结果/目录列表等发送到HTML GUI(可能通过ajax)。
你知道,有很多有趣的东西要探索,你已经到了一半了。
希望这有帮助。
修改强>
一个人可能作弊很难,你可以下载一个文件(并修改它)并将其存储在HTML5 typed array中并使用http PUT (also supporting delete)再次将其存储在服务器上。现在你仍然需要处理安全性/用户识别...(并且有php,json,一些服务器端处理程序仍然再次启动,我目前还不确定如何apach put-module一旦启用就可以了。使用服务器端包括您已修改以显示目录列表,并且标题中的某些此类javascript可能会使非常粗糙的文件管理器...类型..不完全复制.. 。
答案 1 :(得分:2)
这是一个奇怪的例子。首先,HTML页面与本地文件系统交互并不常见。我希望任何现代浏览器都会抱怨ALOT关于此代码的警告和设置要求。此外,它使用的是activeX控件,只有在任何地方都可以在IE上使用。
也许这个例子大概15岁了?这可以解释很多。
我不希望这在过去5年中安装/配置的任何系统上开箱即用。
您可以更改系统上的设置以使其正常工作,但我不建议这样做。你的系统会在几分钟内被打电话/僵尸。
我认为我们需要回到你想要做的事情以及为什么,我怀疑HTML中的javascript不是答案。
根据评论我的建议是你使用node.js.您将学到很多东西,玩得开心,并且使用的技术已经过时了15年。
去这里,玩得开心:
答案 2 :(得分:1)
将您的文件扩展名重命名为.hta并双击它..瞧..