2016-11-28 5 views
1

Я разрабатываю приложение и используя метод jsonp для Javascript для отправки и получения данных на php & MYSQL-сервер, поскольку приложение не находится на том же сервере, на котором я сохраняю данные.Как отправить изображение с помощью jsonp на сервер?

Могу ли я отправить изображение на этот сервер, используя тот же метод jsonp, , как кодировать его или использовать двоичный файл или что-то в этом роде?

+4

Вместо этого вы должны использовать CORS. – SLaks

ответ

2

Вы можете base64 закодировать изображение и отправить его как строку. Вы бы сделать что-то вдоль этих линий на сторону клиента:

var the_file = new Blob([window.atob(base_64_string)], { type: 'image/png', encoding: 'utf-8' }); 
var fr = new FileReader(); 
fr.onload = function (oFREvent) { 
    var v = oFREvent.target.result.split(',')[1]; 
    v = atob(v); 
    var good_b64 = btoa(decodeURIComponent(escape(v))); 
    img.src = "data:image/png;base64," + good_b64; 
    img.onload = function() { 
     //do stuff here 
    }; 
}; 
fr.readAsDataURL(the_file); 

Как @SLaks намекал в своем комментарии, рассмотреть вопрос об использовании CORS заголовка для конечной точки вместо JSONP, но не обязательно.

Не уверен, что такое ваш прецедент, но почему бы не просто использовать ссылку на изображение?

+0

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

1

Вы не можете воспроизвести изображение, используя jsonp. У вас есть две альтернативы использовать iframe trick:

Или вы можете использовать WebSockets

Если вы закодировать свою базу 64 изображений в формате JSON строки изображение, которое вы хотите быть ограничены в файл размеров.

 Смежные вопросы

  • Нет связанных вопросов^_^