簡體   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