2013-09-18 3 views
0

Я застрял в простой вещи, загружая изображение в php. Все входящие в комплект php файлы находятся в каталоге, который включает в себя. Index.php находится в корневой папке. Когда я вызываю img src из файла php, находящегося в корневой папке, я вижу изображения. Но когда я включить раздел, который должен загрузить изображение так:Загрузить изображение из включенного php не в корневую директорию сервера

<?php include("includes/section.php"); ?> 

называют это:

<div class = "right"> 
<h1> news </h1> 
<hr> 
echo '<img src="../img/do.png" width="200" alt="Rifrazione news/>'; 
<p class = "rightp">Blabla </p><br 
</div><!--end of right--> 

Я ничего не получаю

ответ

2

для изображений, которые я prefare использовать глобальную переменную.

Попробуйте сделать что-то вроде этого:

<? 
$baseUrl = "http://localhost"; // CHANGE IT TO YOUR URL 
?>  
<div class = "right"> 
<h1> news </h1> 
<hr> 
<? 
echo '<img src="'.$baseUrl.'/img/do.png" width="200" alt="Rifrazione news" />'; 
?> 
<p class = "rightp">Blabla </p><br /> 
</div><!--end of right--> 
+0

Это мой базовый url, полученный из xamp, но изображение на самом деле не отображается. На странице я вижу только эти теги закрывающих символов '; ?> –

+0

'' '' ''
'также отсутствовал в исходном коде. – thepratt

+0

Я только что исправил HTML-код. Пожалуйста, попробуйте еще раз. – Adam

0
+0

Это для создания относительных URL-адресов, которые должны использоваться для ссылок, а не для файлов в локальной системе. – thepratt

+0

У вас есть что-то отрицательное, чтобы сказать обо всех остальных, кто ответил .. почему? Всегда правы, Сэм? Тонируйте его, иначе вы не будете долго оставаться на SO. – DevlshOne

+0

getcwd возвращает меня к этому пути C: \ xampp \ htdocs \ Rifrazione, но я до сих пор не вижу изображения. –

1

Файл, в котором вы сейчас находитесь, является вашим текущим рабочим каталогом. Поэтому найдите местоположение вашего изображения из каталога, в котором находится index.php, что означает, вероятно, удаление ../. Если у вас есть сомнения echo getcwd();.

НИКОГДА не делайте то, что предложил Адам. Вы всегда должны использовать пути файловой системы, никогда не указывать пути к локальным файлам. EDITПричина: Hotlinking является частью этого, поскольку он может не знать, почему что-то не работает, поскольку оно работало в других местах, но главным образом из-за перенаправления/.htaccess/url rewriting. Если позже он перейдет к MVC или аналогичной структуре, то локальный хост/контроллер/действие не вернет его изображение, но он может и не быть уверен, почему, поскольку это плохая привычка, которую он уже взял. Другая причина заключалась в простоте использования, если он ставит путь как ./image/here.jpg, противоположный localhost */here.jpg, ему, возможно, придется пройти и переписать каждую ссылку, если он перенесет позже внешний сервер.

Пример, чтобы помочь себе лучше: Если у вас есть следующий каталог:

my_site/ 
    js/ 
    css/ 
    images/ 
     image.jpg 
    index.php 
    bob/ 
     bob.php 
     contactBob.php 

Если вы читаете index.php, ваша ссылка на изображения будет /images/image.jpg. Если вы просматриваете contactBob.php, ваша ссылка на изображения будет ../images/image.jpg.

+0

Hey Stano, hotlinking является частью этого, так как он может не знать, почему что-то не работает, поскольку оно работает в других местах, но в основном из-за перенаправления/.htaccess/url. Если позже он перейдет к MVC или аналогичной структуре, то http: // localhost/controller/action не вернет его изображение, но он может и не быть уверен, почему, поскольку это плохая привычка, которую он уже взял. Другая причина заключалась в простоте использования, если он ставит путь как ./image/here.jpg, противоположный http: //localhost/*/here.jpg, ему, возможно, придется пройти и переписать каждую ссылку, если он для последующей миграции на внешний сервер. – thepratt

+0

Если у вас есть приложение, в котором необходимо переместить все изображения на внешний медиа-сервер, то мое решение кажется лучшим. У вас есть $ baseUrl в файле конфигурации и только изменяйте значение там. – Adam

+0

Итак, какое значение должно быть передано переменной $ baseUrl, Сэм? Я согласен с тем, что относительный путь лучше, поскольку вам не нужно менять их при перемещении данных в другой домен. –

0

После поиска и тестирования ... это было ничто из этого. Единственное, чего не хватало, это тег php в начале скобки.

Вам не нужны переменные вообще. Этот синтаксис работает по назначению.

<?php 
echo '<img src="img/do.png" width="120" alt="Rifrazione news"/>'; 
?> 

Спасибо за прыжки в любом случае.

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