2015-04-03 7 views
0

Как я могу получить доступ к загруженным изображениям/документам вне моего public_html?Как получить доступ к загруженным изображениям/документам вне моего public_html?

, например, у меня есть эта структура,

lib/ 
upload/ (uploaded images and pdfs) 
public/index.php 
bootstrap.php 

общественности/index.php,

// Include application bootstrap 
require_once dirname(__FILE__) . '/../bootstrap.php'; 

$app->get('/about', function() use ($app, $log) { 
    echo '<p><img src="' . '/../upload/image/cat.jpg' . '"/></p>'; 
}); 

// Important: run the app 
$app->run(); 

я могу получить доступ bootstrap.php через dirname(__FILE__), но я не могу это сделать с изображениями.

Я следую этой идее рамки от this. Но можно ли хранить мои изображения и документы за пределами общей папки?

Как насчет файла javascript?

Я отмечаю, что большинство фреймворков хранят эти элементы в общей папке.

ответ

1

Существует большая разница в том, как вы ссылаетесь на bootstrap.php и изображения. Первый загружается процессором PHP, последний у браузера. Конечно, вы можете открыть файл изображения, например, fopen() в PHP, если у вас есть разрешения, но браузер на стороне клиента не запущен на сервере.

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

+0

'Вы должны либо предоставить сценарий для отправки файлов в браузере, или загруженные изображения, которые вы хотите ссылаться в HTML под корень документа или настроить псевдоним на веб-сервере. 'Как я могу это сделать? – oasis

1
<?php 
header('Content-type: image/jpg'); 
readfile('/path/to/upload/image/cat.jpg'); 

возможно работать этот

или

<?php 
header('Content-Type: image/jpeg'); 
$_file = 'cat.jpg'; // or $_GET['img'] 
echo file_get_contents('/upload/image/'.$_file); 
?>