REST, XMLHttpRequest, закачка картинки через POST
Вопрос про XMLHttpRequest — надо через web-страничку, т.е. силами JS, закачать фотографию на рабочий REST-сервис. Код сейчас выглядит так:
var xmlhttp = new getXmlHttp(); xmlhttp.open('POST', 'http://localhost/folders/root/', false, "Admin", "pass"); xmlhttp.setRequestHeader("Content-Type", "image/jpeg"); xmlhttp.setRequestHeader("Slug", "ThisIsNewImage"); data = ??? //"c:/image.jpg" xmlhttp.send(data); Не понимаю как представить изображение в виде данных, чтобы отправить POST'ом? В сети информацию на эту тему не ищется :( Подскажите, пожалуйста, в какую сторону смотреть и что читать? |
Смотреть в сторону FileAPI, XHR2
Читать спецификации, можно ещё это: http://javascript.ru/blog/Brmaley-ee/FileAPI — статья тысячелетней давности, всё давно поменялось, но общее представление даёт. А ещё в конце имеются какие-то ссылки. http://javascript.ru/blog/Jason-Bour...mi-cherez-AJAX Без FileAPI Вы даже содержимое файла получить не сможете, так что и отправлять будет нечего. С помощью XHR2 можно их послать multipart запросом, т.е. так, будто он был отправлен из формы. Простым XHR'ом так не получится, придётся писать отдельную логику обработки AJAX загрузки. Но проще всего файл средствами JS загружать через скрытые фреймы. |
Цитата:
сначала зайдите сюда а потом сюда http://learn.javascript.ru/xhr-forms |
Цитата:
|
Загрузить данные можно таким хаком:
var xhr = new XMLHttpRequest(); xhr.open('GET', '/path/to/image.png', true); xhr.overrideMimeType("text/plain; charset=x-user-defined"); xhr.onreadystatechange = function(e) { if (this.readyState == 4 && this.status == 200) { var binaryString = this.responseText; alert(binaryString.length); }}; xhr.send(); Для отправки нун преобразовать в двоичный блоб и отправка вручную собранным muptipart Может помочь статья:http://habrahabr.ru/company/mailru/blog/159587/ Читать стоит отсель "// а теперь собираем muptipart, ничего сложного" |
методом пут отправляй
|
Цитата:
Цитата:
|
B@rmaley.e><e,
:) Ну пишем обычно про то, чем занимались, - таскал картинки иконок из гугла, по поисковым запросам |
Спасибо за ответы!
Буду читать и пробовать. Поймите еще меня правильно - я пользовался поисковиками, но как правильно задать поисковый запрос знают только опытные програмеры, а я лишь должен сейчас написать один функционал - я не сижу в JS днями-ночи :) Все статьи пишут рецепты, а мне явно каких-то базовых знаний не хватает. Еще, моя задача не типичная для массы сайтов: на работе есть REST-веб-сервис, он как-то там работает - это закрытый код. Но через curl-консоль все проверяется, 100% рабочее. Вот что у них в документации написано: Код:
POST: xmlhttp.setRequestHeader("Content-Type", "image/jpeg"); xmlhttp.setRequestHeader("Slug", "ThisIsNewImage"); Мне неважно загружать частями или полностью. Сервера полностью локальные - можно целиком и пачками. Я не уверен, можно ли через FormData отослать чистый файл с только требуемыми заголовками? |
Svetozar,
ну FormData формирует такой же запрос как и реальная форма... Если Ваш PHP сможет обрабатывать запрос от реальной тестовой формы, значит и от FormData аналогично |
Часовой пояс GMT +3, время: 11:54. |