Content-Length для динамически изменяемого изображения PHP - PullRequest
2 голосов
/ 28 марта 2012

Я написал страницу PHP для динамического изменения размера изображения, хранящегося как BLOB в базе данных MySQL.Я делаю это на лету, не сохраняя никаких временных файлов.Есть ли способ определить Content-Length для отправки в заголовке?

Я создал изображение с помощью imagecopyresampled () и использую imagepng () (или подобное) для вывода данных изображения.

$origImage = imagecreatefromstring($image['data']);
$newImage = imagecreatetruecolor($width, $height);

// preserve alpha
imagealphablending($newImage, false);
imagesavealpha($newImage, true);

$resizeSuccess = imagecopyresampled($newImage, $origImage, 0, 0, 0, 0, $width, $height, $image['width'], $image['height']);

header('Content-Type: image/png');
imagepng($newImage, null, $pngCompression, PNG_NO_FILTER);
imagedestroy($newImage);

1 Ответ

4 голосов
/ 28 марта 2012

Вместо вашего imagepng звонка попробуйте это:

ob_start(function($c) {
    header("Content-Length: ".strlen($c));
    return $c;
});
imagepng($newImage, null, $pngCompression, PNG_NO_FILTER);
obj_end_flush();

Кроме того, сервер должен обрабатывать Content-Length автоматически для вас.

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