2016-07-07 63 views
1

我試圖讓用戶從他們的計算機中選擇一個文件並開始種子播種,我遵循here的示例。我使用了正常的輸入,而不是使用拖放功能,因爲我無法使用它。從瀏覽器播種文件

現在,每當一個文件被選中我得到這個錯誤:

Uncaught Error: filesystem paths do not work in the browser

如何開始從用戶的計算機沒有播種的文件上傳到我的服務器?

+1

你可以使用PHP嗎? –

+0

不知道,我想我可以使用某種阿賈克斯。你在暗示什麼? –

+0

我是新來的網絡開發太大聲笑,但我知道如何通過使用PHP發送文件,因爲我的兩個項目是由PHP驅動的,如果你有興趣,我可以在下面留下一個答案。 –

回答

2

我想你嘗試閱讀文件file:///,但這不可能出於安全原因。必須選擇一個文件或從用戶流失的文件夾中刪除文件&。 最簡單的辦法是用一個按鈕:

function readFile(evt) { 
 
    var file = evt.target.files[0] 
 
    if (!file) { 
 
    return 
 
    } 
 
    var reader = new FileReader() 
 
    reader.onload = evt => { 
 
    var contents = evt.target.result 
 
    console.log(contents) 
 
    } 
 
    reader.readAsText(file) 
 
}
<input type="file" onchange="readFile.call(this, event)" />

在這個片段中,你可以讀取一個文件,而無需與服務器的任何交互和那理想的無服務器techlology像洪流。

+0

我測試了你的代碼,它成功地輸出了文件的內容,但是當它凍結瀏覽器時,我需要文件的系統路徑,所以我可以開始播種文件 –

+1

是的,如果你使用更大的文件,它會凍結,但那只是因爲'console.log'。如果你只是在一個變量中安全,它會沒事的。第二部分:您將永遠無法直接訪問文件!但在文檔中是'client.seed(files,callback)',應該可以直接使用'evt.target.files',或者只使用一個文件,就像例子中那樣。 – Julian

+0

這很好用,非常感謝。 –