как отправить изображение base64 на сервер

Я использовал кодировку base64 для динамического отображения изображения (путем выбора изображения).

<img style="width: 412px;" src="data:image/gif;base64,R0lGODlhwAAAAXAAACH5BAEAAPwALA

Как отправить изображение на сервер? с помощью $.ajax() и без обратной передачи.

заранее спасибо


person hamed hossani    schedule 16.12.2012    source источник


Ответы (1)


$.ajax({
    type: 'POST', //or get
    url : 'urlToMyServer.aspx',
    data: { img : $('img').attr('src') }
});

Если B64 не очень, очень длинный, просто отправьте его обычным способом?

person adeneo    schedule 16.12.2012
comment
data: $('img').attr('src') это не сработает. data принимает объект или строку запроса. - person iMoses; 17.12.2012
comment
@iMoses принимает произвольную строку, которую jQuery отправит буквально как тело запроса POST. - person Esailija; 17.12.2012
comment
@iMoses - отправить строку не проблема, но я думаю, что в этом случае объекты на самом деле легче понять, поэтому я отредактировал ее. - person adeneo; 17.12.2012
comment
Если да, то как мне получить его на стороне сервера? Как называется моя пост-переменная? Насколько я знаю, если вы хотите использовать строку, она должна быть отформатирована как строка запроса, например: data: 'img=' + $('img').attr('src') - person iMoses; 17.12.2012
comment
@iMoses зависит от языка/платформы, в php вы бы сделали $requestBody = file_get_contents( "php://input"); - person Esailija; 17.12.2012
comment
@iMoses - он принимает что угодно, даже просто массив, jQuery создает строку запроса или все, что ему нужно отправить. Не очень хорошо разбирается в C#. так что как вы зафиксируете это в ASP, я не уверен. - person adeneo; 17.12.2012
comment
Если вы передадите строку, jQuery ничего не сделает с ней, и вам придется вручную анализировать необработанное тело запроса на сервере. - person Esailija; 17.12.2012
comment
Хорошо, вы правы :) Хотя вы должны признать, что гораздо читабельнее использовать $requestBody = $_POST['img'], а также указывать имя переменной на стороне клиента. - person iMoses; 17.12.2012
comment
@adeneo-вы говорите: он принимает что угодно. Я спросил вас? Какова длина строки? - person hamed hossani; 17.12.2012
comment
@hamed hossani stackoverflow.com/questions/2364840/ - person iMoses; 17.12.2012
comment
Обычно почтовые запросы занимают около 2 мегабайт, но это настройка сервера, поэтому, если у вас достаточно памяти, вы можете установить ее на 2 гигабайта! - person adeneo; 17.12.2012
comment
танки всем, как загрузить свой образ на сервер? - person hamed hossani; 17.12.2012