Как мне отобразить изображение, расположенное за пределами общей папки в php, используя file: // protocol

#php #codeigniter

#php #codeigniter

Вопрос:

У меня есть таблица в моей базе данных, которая содержит только путь к изображениям. путь за пределами общей папки, путь такой (/home/username /folder/sudfolder/datefoldeизображения) папка date всегда будет именем текущей даты?

какую функцию php лучше всего использовать для отображения изображений? и как мне это сделать?

я использую codeigniter, centos 7, mysql и nginx

Комментарии:

1. Более важный вопрос заключается в следующем … Имеет ли учетная запись веб-сервера доступ к этой папке? Если это произойдет, то <img src="" тег и атрибут будут такими же, как обычно

Ответ №1:

Прежде всего, старайтесь избегать использования PHP, если это возможно, не рекомендуется запускать интерпретатор PHP для каждого запроса изображения, поскольку это требует слишком много ресурсов. Вместо этого создайте символическую ссылку в общедоступном каталоге.

В случае, если вы не можете избежать php, попробуйте использовать заголовок X-Accel-Redirect для Nginx

 header("X-Accel-Redirect: /files/" . $path);
  

Или в случае, если вы используете Apache:

 header("X-Sendfile: $filename");
  

Если эти параметры также недоступны, используйте php-функцию readfile()

Комментарии:

1. какими будут /files /? поскольку все файлы изображений имеют разные

2. каким будет «»/files /»? , потому что все файлы изображений имеют разные имена