Должна ли конечная точка PHP возвращать изображение, используя readfile или base64_encode? - PullRequest
0 голосов
/ 08 мая 2019

Я работаю над конечной точкой, которая возвращает одно изображение из файловой системы (например, портрет пользователя). Я использую ajax-скрипт для тестирования, который обрабатывает результат конечной точки и вставляет его в div. Это подняло вопрос о создании изображения из BLOB-объекта ответа ajax. Все решения, которые я нашел на SO, предполагают, что изображение возвращается в кодировке base64. Я заработал, изменив конечную точку для вывода изображения с кодировкой base64, но это кажется дополнительным шагом, особенно для клиентов iOS, которые могут понимать выводимое изображение по readfile.

Это то, что люди делают в производственных условиях? Разве преобразование в base64 не увеличивает размер и не увеличивает нагрузку на сервер? Какие преимущества / недостатки есть у каждого метода? Есть ли другой способ, который даже лучше?

header("Content-type: {$imginfo['mime']}");

// Output the file stream
readfile($filename);

// Output as base64
$type = pathinfo($filename, PATHINFO_EXTENSION);
$data = file_get_contents($filename);
base64_encode($data);
echo base64_encode($data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...