Отправка изображений с php? - PullRequest
0 голосов
/ 22 января 2019

Я php noob, вынужденный добавить незначительную функциональность на существующий php сервер. Моя задача состоит в том, чтобы мой php-сервер возвращал клиенту список изображений, который затем будет отображаться на странице.

Мой код клиента JavaScript находится здесь:

const http = new XMLHttpRequest();
const url = "http://myaddress.com/myphpserver?";
http.open("GET", url);
http.send();
http.onreadystatechange = (e) => {
    console.log(http.responseText);
}

Я пробовал этот код на моем сервере:

$im = imagecreatefrompng("myImage.png");
header('Content-Type: image/png');
imagepng($im);

найдено здесь но безрезультатно

мой http.responseText всегда пуст. Я иду по этому поводу неправильно?

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Не отвечает на вопрос ОП. Ответы для тех гуглов, которые на самом деле ХОТЯТ PHP отправлять необработанное изображение вместо ссылки на изображение:

<?php
/* Must be  done before headers are sent */
header('Content-Type: image/jpeg');
$path = 'myfolder/myimage.jpg';
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
echo $base64;
?>

(Частично использует другой ответ stackoverflow на другой вопрос о том, как кодировать изображение, но если у вас есть строка, уже закодированная откуда-то еще, то это также может заменить строку $ base64)

0 голосов
/ 22 января 2019

Нет необходимости отправлять изображение в качестве ответа от PHP.

Вместо этого вы должны вместо этого вернуть JSON с URL-адресом изображения.Например:

{
    "images": [{
            "url": "http://myaddress.com/image_of_cat.jpg"
        },
        {
            "url": "http://myaddress.com/image_of_cat.jpg"
        }
    ]
}

А затем с помощью javascript вы просто устанавливаете атрибут src тега <img> с этим URL.

Теперь вам нужно только установить очень простойсервер, который обслуживает изображения из папки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...