访问所有图像之外的文档根不工作 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的主要内容,如果未能解决你的问题,请参考以下文章
如何密码控制对除 apache 2 中的一个之外的所有 url 的访问