Как сериализовать файл в JavaScript? - PullRequest
3 голосов
/ 13 января 2010

Я хочу реализовать асинхронную загрузку файлов для моего приложения asp.net. Моя идея состоит в том, чтобы сериализовать файл в клиентскую часть JSON и вызвать веб-сервис для восстановления файлового сервера. Мой вопрос:

Как прочитать файл в двоичном виде и сериализовать его в JSON? Решение не может требовать использования Google Gears или «обязательных для установки» технологий на стороне клиента. Спасибо!

Ответы [ 5 ]

7 голосов
/ 13 января 2010

Используйте iframe, чтобы скрыть процесс загрузки файла. Вы не хотите обрабатывать данные в JavaScript, поскольку они будут очень медленными. Все, что вам нужно сделать, это управлять взаимодействием с пользователем.

Пример: http://www.webtoolkit.info/ajax-file-upload.html

4 голосов
/ 13 января 2010

Поскольку вы не можете получить доступ к файловой системе с помощью Javascript, я не понимаю, как вы могли бы сделать это без какого-либо установленного компонента Flash или ActiveX.

1 голос
/ 13 января 2010

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

Если вы не понимаете, почему, представьте, что произойдет, если какая-либо веб-страница может прочитать %USERPROFILE%\ntuser.dat.


Если вы хотите загрузить файл с помощью AJAX, вам нужно будет использовать IFRAME; см здесь .

0 голосов
/ 13 января 2010

Вы должны спросить, как достичь большей цели. У вас есть цель, и вы определили, что единственный способ выполнить это - сериализовать файл с JavaScript на клиенте (что невозможно), и некоторые люди пытались расшифровать то, что вы действительно хотите выполнить, и предложили ответы ( загрузка в асинхронном режиме и т. д.)

Скажите нам, что вам нужно для выполнения, и опишите задачу и пределы вашего решения, и мы поможем вам найти решение.

Некоторые вещи, которые нам нужно знать

  • почему вы анализируете файл?
  • с какими размерами файлов вы ожидаете столкнуться?
  • что вы делаете с информацией из файла?
  • почему вы делаете это в Интернете, а не в настольном приложении?
0 голосов
/ 13 января 2010

Вам не нужно сериализовать файл, чтобы загрузить его, и JSON не участвует в загрузке файлов. Ответы здесь могут показаться запутанными, потому что люди думают, что вы пытаетесь загрузить файлы тайно. См. Ответ Уилла Бикфорда выше (iframes).

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