Читать содержимое объекта "файл"? - PullRequest
12 голосов
/ 05 марта 2011

Итак, у меня есть объект «Файл» (полученный путем обработки перетаскивания файлов с рабочего стола). Я могу отправить файлы на сервер с помощью AJAX, а затем выбросить их обратно для JavaScript для их обработки. Но возможно ли прочитать его содержимое, не делая всего этого?

Здесь поиграйтесь с этой скрипкой. Перетащите любой файл в поле и используйте переменную file.

Я уже попробовал все методы этого объекта ... не повезло. Можете ли вы получить содержимое файла, который вы только что перетащили в браузер?

PS: я бы отправил файлы на сервер так:

var ajaxRequest = new XMLHttpRequest();
ajaxRequest.open("returnRawPostData.php");
ajaxRequest.send(file);

Возможно, я что-то пропустил в коде выше, но это только потому, что никто больше не использует простой JS для выполнения вызовов AJAX.

Ответы [ 2 ]

27 голосов
/ 05 марта 2011

Используя ссылки из Martin Mally (большое спасибо!), Я придумал следующее:

var file = e.dataTransfer.files[0],read = new FileReader();

read.readAsBinaryString(file);

read.onloadend = function(){
    console.log(read.result);
}

Где read.result содержит содержимое файла.

8 голосов
/ 05 марта 2011

Я думаю, что это возможно; проверьте эти две статьи:

  1. https://developer.mozilla.org/en/Using_files_from_web_applications
  2. http://hacks.mozilla.org/2011/01/how-to-develop-a-html5-image-uploader/

Они оба манипулируют «сброшенным» файлом через JS / HTML перед загрузкой на сервер. (например, изменение размера изображения и т. д.) Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...