Произведите изображение в PHP

Мой подход должен был всегда использовать StringBuilder при конкатенации 4 или больше строк ИЛИ Когда я не знаю, как может, конкатенации должны произойти.

Хорошая похожая статья производительности о нем здесь

67
задан Shaiful Islam 13 April 2015 в 15:25
поделиться

6 ответов

$file = '../image.jpg';
$type = 'image/jpeg';
header('Content-Type:'.$type);
header('Content-Length: ' . filesize($file));
readfile($file);
130
ответ дан 24 November 2019 в 14:27
поделиться

Если у вас есть возможность самостоятельно настроить свой веб-сервер, такие инструменты, как mod_xsendfile (для Apache), значительно лучше, чем чтение и печать файла в PHP. Ваш PHP-код будет выглядеть так:

header("Content-type: $type");
header("X-Sendfile: $file"); # make sure $file is the full path, not relative
exit();

mod_xsendfile принимает заголовок X-Sendfile и отправляет файл в сам браузер. Это может существенно повлиять на производительность, особенно для больших файлов. Большинство предлагаемых решений считывают файл целиком в память и затем распечатывают его. Это нормально для файла изображения размером 20 Кбайт, но если у вас есть файл TIFF размером 200 МБ, вы

30
ответ дан 24 November 2019 в 14:27
поделиться
<?php

header("Content-Type: $type");
readfile($file);

Это сокращенная версия. Вы можете сделать несколько дополнительных мелочей, чтобы сделать их приятнее, но это сработает для вас.

0
ответ дан 24 November 2019 в 14:27
поделиться

Попробуйте следующее:

<?php
  header("Content-type: image/jpeg");
  readfile("/path/to/image.jpg");
  exit(0);
?>
3
ответ дан 24 November 2019 в 14:27
поделиться
header('Content-type: image/jpeg');
readfile($image);
3
ответ дан 24 November 2019 в 14:27
поделиться

Вы можете использовать заголовок для отправки правильного Content-type:

header('Content-Type: ' . $type);

и readfile для вывода содержимого изображения:

readfile($file);


И, возможно, (вероятно, не обязательно, но на всякий случай) вам также придется отправить заголовок Content-Length:

header('Content-Length: ' . filesize($file));


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

0
ответ дан 24 November 2019 в 14:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: