从浏览器播种文件

时间:2016-07-07 15:44:33

标签: javascript node.js webtorrent

我试图允许用户从他们的计算机中选择一个文件并开始播种,我已经按照示例here进行了操作。我使用普通输入而不是拖放,因为我无法使用它。

现在无论何时选择文件,我都会收到此错误:

  

未捕获错误:文件系统路径在浏览器中不起作用

如何在不将文件上传到服务器的情况下从用户的计算机开始播种?

1 个答案:

答案 0 :(得分: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)" />

使用此代码段,您可以在不与服务器进行任何交互的情况下读取文件,这非常适用于像torrent这样的无服务器技术。