0

如何在我的 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文件呢?

我注意到大多数框架都将这些项目存储在公用文件夹中。

4

2 回答 2

1

引用 bootstrap.php 和图像的方式有很大不同。第一个由 PHP 处理器加载,后者由浏览器加载。当然,fopen()如果您有权限,您可以使用例如 PHP 打开图像文件,但客户端浏览器未在服务器上运行。

您要么必须提供一个脚本来将文件发送到浏览器,要么在文档根目录下拥有要在 HTML 中引用的上传图像,或者在 Web 服务器上设置别名。

于 2015-04-03T10:12:59.837 回答
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);
?>
于 2015-04-03T10:17:11.827 回答