Base 64 кодирует файл формы - PullRequest
1 голос
/ 03 марта 2012

Я пишу очень простой сайт для обмена файлами на JS и PHP. У меня работает перетаскивание, поэтому браузер получает объект file при отбрасывании, и оттуда я попытался отправить запрос xhr на страницу загрузки. Тем не менее, я не могу просто выбросить двоичный объект file в заголовок запроса, и поэтому мне было интересно, как мне поступить с base64-кодированием.

В PHP я бы использовал base64_encode, но я еще даже не на странице PHP. Может быть, вы могли бы предложить альтернативный метод моему нынешнему?

О, и в PHP, который его получает, он записывает в полуслучайный файл после base64_decode его заполнения.

РЕДАКТИРОВАТЬ: Я работал над этим, но на самом деле нет хорошего ответа. Спасибо за помощь!

Вот мое демо: http://bernsteinbear.com/up

Ответы [ 2 ]

3 голосов
/ 04 марта 2012

В работе есть функция, которая в настоящее время поддерживается только в Firefox, xhr.sendAsBinary, но сейчас вы можете выполнять кодирование Base64 в Javascript с помощью этой пользовательской функции:

http://www.webtoolkit.info/javascript-base64.html

В качестве альтернативы, вы можете реализовать sendAsBinary самостоятельно, как показано здесь:

http://hublog.hubmed.org/archives/001941.html

Просто помните, что метод Base64 в настоящее время является наиболее совместимым методом.

0 голосов
/ 04 марта 2012

Есть ли причина, по которой вы не используете что-то вроде Valumns File Uploder ?Я не знаю, почему вы хотите добавить двоичный файл «в качестве заголовка запроса» (это не имеет большого смысла для меня), но необходимость кодировать его base64 перед отправкой кажется немного глупой, когда HTTP может обрабатывать отправку двоичных данных воба направления довольно легко ( пример с формами ).Опять же, я не знаком с File API, поэтому я не уверен, какие специальные вещи вы могли бы с ним делать (вы переделываете файл вообще перед отправкой?).Может быть, я упускаю смысл этого упражнения.

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