繁体   English   中英

如何仅使用HTML5和JavaScript将文件从本机传输到vpn中的另一个文件

[英]How to transfer a file from my machine to another one in the vpn using only HTML5 and JavaScript

是否可以仅使用HTML5和JavaScript将文件从本地计算机移动到网络中的另一台计算机? 如果有可用的jQuery或JavaScript插件可用于此目的。

先感谢您。

假设您的意思是客户端JavaScript嵌入在网页中:不,不是。

  • 您可以使用HTML文件输入来选择文件。
  • 您可以使用表单提交或Ajax发送该文件

然而:

  • 您根本无法从客户端删除文件。
  • 您不能使目标计算机对文件提交执行任何操作。

如果要使用Node.js运行部分或全部JavaScript,则:

  • 您可以编写一个(基于非浏览器的)客户端,该客户端可以发送文件并删除本地版本。 不必使用HTTP,因此您可以使用SMB或SSH进行传输。
  • 您可以编写服务器(例如HTTP)来接收文件并将其保存到光盘。

实际上,昆汀在这里理论上是错误的,因为从未提及“远程”。 如果您的“其他计算机”具有可以保存的共享,则可以在下面运行我的示例。 是的,可以,但是取决于文件大小。 您可以使用JavaScript之类的客户端代码从请求中读取参数。 每个浏览器的文件大小接受时间会延迟,但是例如可以使用Chromium / Chrome进行调整。 甚至在某些OS-es上,也可以通过使用form动作中的in URL认证符号来进行基本认证。 因此,您可以做的是:

  • 创建一个UI,使您可以使用“ GET”方法选择表单中的文件
  • 提交时,使用FileReader API创建base64编码的字符串

没有FileReader API(index.html)的基本示例:

<!DOCTYPE HTML>
<html>
    <head>
        <title>&quot;Upload&quot; locally</title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    </head>
    <body>
        <form method="get" action="iwillsave.html">
            <div class="input-group">
                <label for="file">Pick a file:</label>
                <input id="file" name="file" type="file">
            </div>
            <div class="form-actions">
                <button type="submit">Submit</button>
            </div>
        </form>
    </body>
</html>
  • 在“保存”页面中处理文件解码并使用FileSystem API保存

不带FileSystem API(iwillsave.html)的基本示例:

<!DOCTYPE HTML>
<html>
    <head>
        <title>&quot;Upload&quot; locally</title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    </head>
    <body>
        <div id="result"></div>
    </body>
    <script type="text/javascript">
    function getParam(name){
       if(name=(new RegExp('[?&]'+encodeURIComponent(name)+'=([^&]*)')).exec(location.search)) return decodeURIComponent(name[1]);
    };
    window.onload = function(){
        var file = getParam('file');
        document.getElementById('result').innerHTML = file;
    };
    </script>
</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM