访问所有图像之外的文档根不工作 Apache windows

Posted

技术标签:

【中文标题】访问所有图像之外的文档根不工作 Apache windows【英文标题】:access all images oustside documentRoot not workng Apache windows 【发布时间】:2021-12-15 04:16:51 【问题描述】:

当用户上传图片时,我的 documentRoot 之外有一个文件夹来保存它。我试图遍历所有图像并显示它们,但它不起作用。 php apache 别名。 我还没有托管该网站。

别名配置

 Options Indexes FollowSymLinks Includes ExecCGI
 AllowOverride All
 Require all granted
</Directory>
Alias /webdev "c:\exclusive\webdev"

在我的 documentRoot php 中测试它 我的文档根位置 C:\xampp\htdocs\create 别名根位置 C:\exclusive\webdev

$path = '/webdev';
    $ImgDir = webdev/;
     $files = new FilesystemIterator($path);
     $images = new RegexIterator($files, '/\.(?:jpg|png|gif|webp)$/i');
     foreach ($images as $image)  
        
        $fie =$image->getFilename();
        echo '<img src="',$ImgDir, $fie,'" />';

【问题讨论】:

$path$files = new FilesystemIterator( $path );中定义在哪里? $ImgDir = webdev/; 这行应该会导致错误,缺少引号,而且路径是相对的,如src="webdev/test.jpg",如果您的 php 文件在文件夹中或路由到类似的外观,例如 localhost/test/那么最后一个链接是localhost/test/webdev/test.jpg,这是不可访问的 @ProfessorAbronsius 我已经编辑了我输入错误的代码 @Kazz 谢谢。这意味着我无法读取文档根目录之外的图像? @QuobiSlim 你可以,你只需要使用像$ImgDir = '/webdev/';这样的绝对路径 【参考方案1】:

如果不进行测试,您可能可以使用源文件的绝对路径,然后使用别名来显示图像。

$path = 'c:\\exclusive\\webdev';
$ImgDir = '/webdev';

$files = new FilesystemIterator( $path );
$images = new RegexIterator( $files, '/\.(?:jpg|png|gif|webp)$/i' );

foreach( $images as $image ) 
    printf( '<img src="%s/%s" />', $ImgDir, $image->getFilename() );

【讨论】:

哇。这行得通。我感谢您的时间和知识。 很高兴它有帮助

以上是关于访问所有图像之外的文档根不工作 Apache windows的主要内容,如果未能解决你的问题,请参考以下文章

虚拟主机文档根不起作用

拒绝访问除索引文件之外的所有文件 - Apache2

如何密码控制对除 apache 2 中的一个之外的所有 url 的访问

Apache 文档根目录之外的文件

Apache poi java。在另一台电脑上运行JAR文件时,文档中不显示图像。

11.18 Apache用户认证11.19 11.20 域名跳转11.21 Apache访问日志