2012-03-03 4 views
1

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

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

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

EDIT: Я работал вокруг него, но на самом деле нет хорошего ответа. Спасибо за помощь!

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

ответ

3

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

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

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

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

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

0

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

+0

хотел сделать это сам – tekknolagi