如何在我的public_html之外访问上传的图像/文档?

时间:2015-04-03 10:09:34

标签: php frameworks document-root 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文件怎么样?

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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);
?>