Как получить доступ к загруженным изображениям / документам вне моего 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__)
но я не могу сделать это с изображениями.
Я придерживаюсь этой рамочной идеи из этого. Но могу ли я хранить свои изображения и документы вне общедоступной папки?
Как насчет файла JavaScript?
Я замечаю, что большинство фреймворков хранят эти элементы в общей папке.
2 ответа
<?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);
?>
Существует большая разница в том, как вы ссылаетесь на bootstrap.php и изображения. Первый загружается процессором PHP, второй - браузером. Конечно, вы можете открыть файл изображения с помощью, например, fopen()
в PHP, если у вас есть разрешения, но на сервере не работает браузер на стороне клиента.
Вы должны либо предоставить скрипт для отправки файлов в браузер, либо иметь загруженные изображения, на которые вы хотите сослаться в HTML, в корневой каталог документа, либо настроить псевдоним на веб-сервере.