2014-02-10 3 views
0

Я использую код и имею в нем каталог изображений. Из-за проблемы с пространством я переместил весь каталог в новое место на том же сервере.Показать изображения на сайте из папки вне public_html папки

Ранее путь был/вар/WWW/HTML/site_folder/активы/изображения

Новое местоположение/главная/NEW_SITE/изображения

Теперь, когда я хочу, чтобы отобразить изображения на веб-сайте его не получает нагрузки ,

Я попытался использовать код ниже

$ файла = '/home/new_site/images/3.jpg';

header ('Content-Type: image/jpeg');

echo "< img src = '". Readfile ($ file). "' &glt;";

У меня есть примерно 50 изображений, и я хочу загрузить их на свой сайт.

Это работает на локальном, но не на сервере. Я использую Linux на местном и Centos на сервере.

ответ

2

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

Есть несколько решений, вы можете попробовать:

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

    src="image5.jpg"

    к чему-то

    src="image.php?name=image5.jpg"

Тогда вам нужен сценарий "image.php", который принимает имя из изображение в качестве параметра запроса, а затем возвращает содержимое:

<?php 
    // take care to make some clever checks here 
    // otherwise you introduce a security nightmare 
    $file = '/home/new_site/images/' . htmlspecialchars($_GET["name"]); 

    header('Content-Type: image/jpeg'); 

    readfile($file); 
?> 
+0

Привет, вы хотите сказать, что мне нужно будет создать файл image.php и поставить под ним код $ file = '/ home/new_site/images /'. htmlspecialchars ($ _ GET [ "имя"]); header ('Content-Type: image/jpeg'); readfile ($ file); –

+0

Да, вы должны передать данные необработанного изображения в браузер. Сценарий не проверен, но он должен дать вам представление о том, как это можно сделать. – ViToni

+0

Так что если 100 изображений, то мне придется написать foreach ..? –

Смежные вопросы