Как отобразить изображение, которое находится за пределами общей папки

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

/web/ (the public folder)
/upload/ (uploading image to this which is at the same level as the public folder)

Теперь, несмотря на то, что я могу использовать абсолютный URL-адрес (/www/userid/upload/), я не могу повторить одно и то же изображение, используя относительный или абсолютный URL-адрес.

Я пробовал <img src="/www/userid/upload/photo.jpg" />, а также <img src="../upload/photo.jpg" />, но ни один из них не работает. Любые подсказки?


person Jeremy    schedule 10.12.2014    source источник
comment
У вас не может быть веб-ссылки за пределами вашей общей папки, вы должны включить загрузки в качестве виртуального каталога на своем веб-сервере.   -  person cardeol    schedule 10.12.2014


Ответы (3)


Путь direct не будет работать, потому что вы не можете получить содержимое из-за пределов корневой папки.

сценарий file.php

<?php
  $mime_type = mime_content_type("/image_path/{$_GET['file']}");
  header('Content-Type: '.$mime_type);

  readfile("/image_path/{$_GET['file']}");
?>


<img src="file.php?file=photo.jpg" />
person Girish    schedule 10.12.2014
comment
Спасибо @Girish. Что делать, если вы хотите иметь несколько типов изображений, таких как jpg, jpeg, png, x-png, gif и т. д.? - person Jeremy; 10.12.2014

Обычно вы не получаете доступ к каталогам за пределами веб-корня.

Быстрое решение - добавить alias в конфигурацию apache, например

alias /upload/ /www/userid/upload/

внутри virtualhosts

и использовать

/upload/photo.jpg
person rjv    schedule 10.12.2014

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

person morantis    schedule 10.12.2014