Intereting Posts
PHP-форма, которая загружает контент на основе раскрывающегося списка Проверьте, существует ли Variable и === true Соединения PHP и mysql Кодировка символов при отправке электронной почты и PHP предотвратить кнопку возврата после выхода из системы Как показывать сообщения на фейсбуке с моего сайта без access_token? Как получить количество строк из DynamoDB (iOS и PHP)? Справка по регулярному выражению в PHP (8 шестнадцатеричных символов, за которыми следует символ подчеркивания) Извлечение данных из экспорта закладок Google Chrome с помощью PHP Могу ли я просмотреть XML, который PHP SOAP хочет отправить перед отправкой? PHPExcel – ошибка циклической ссылки в формуле Есть ли способ кодирования сообщений об ошибках в PHP потеря переменной php session Загрузите файл через PHP-скрипт с FTP-сервера в браузер с заголовком Content-Length без сохранения файла на веб-сервере открытие документа MS word без использования com-объекта

отправить изображение и вернуть его с помощью json?

im пытается отправить изображение в веб-сервис в php с помощью json, но клиент cnt читает изображение .. когда я верну его!

<?php //recieve the image $media = json_decode($_POST['media']); header('content-type: image/jpeg'); $image = imagecreatefromjpeg($media); imagefilter($image,IMG_FILTER_GRAYSCALE); imagefilter($image,IMG_FILTER_COLORIZE,100,50,0); imagejpeg($image, '', 90); imagedestroy($image); //return image $response = array( 'image' => $image ); echo json_encode($response); ?> 

из кода, есть ли что-то, что я делаю неправильно? Благодаря!!! :))

Тип JSON MIME – application/json , поэтому вы не можете отправить image/jpeg .

Я думаю, что было бы проще отправить путь к изображению, и ваш JavaScript сделает запрос на изображение.

В противном случае я не уверен, как вы собираетесь воссоздать это на клиенте. Для URI с датой рекомендуется использовать кодировку base64, поэтому, если вы настаиваете на ее выполнении, пожалуйста, base64_encode() назовите base64_encode() .

 $media = json_decode($_POST['media']); 

Как именно вы отправляете свой образ на этот скрипт? Загрузка файлов в PHP помещается в массив $ _FILES, а не $ _POST. Если ваш клиентский скрипт не делает что-то напуганное, отправка файла с client-> php никогда не появится в _POST.

 imagejpeg($image, '', 90); 

Эта строка выводит изображение как .jpg содержимое сразу, не сохраняя его в файле. Затем вы делаете

  echo json_encode($response); 

который будет небольшим фрагментом данных JSON. Однако вы уже вывели двоичные данные изображения с помощью вызова imagejpeg() , поэтому теперь вы добавляете мусор в отправляемый файл.

Кроме того, $image – это не двоичные данные изображения. Это ручка в системе GD, которая является ресурсом. Выполнение json_encode на нем не даст вам json'd .jpg, это даст вам какой-то json'd PHP-объект.

Возможно, используйте imagedestroy () после создания и отправки ответа json вместо ранее

Я использовал этот подход для получения изображения с моего сервера: получение изображений с PHP-сервера на Android