Отправка файлов из браузера

Я пытаюсь позволить пользователю выбрать файл на своем компьютере и начать заполнять его, я следовал примеру здесь. Я использовал обычный ввод вместо того, чтобы использовать перетаскивание, поскольку я не мог заставить его работать.

Теперь, когда файл выбран, я получаю эту ошибку:

Uncaught Error: пути файловой системы не работают в браузере

Как я могу начать сеять с компьютера пользователя, не загружая файл на мой сервер?

1 ответ

Решение

Я думаю, что вы пытались прочитать файл с 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)" />

С помощью этого фрагмента вы можете читать файл без какого-либо взаимодействия с сервером, что идеально подходит для безсерверной технологии, такой как торрент.

Другие вопросы по тегам