gpt4 book ai didi

php链接到默认网络目录之外的图像文件

转载 作者:IT王子 更新时间:2023-10-29 00:19:12 24 4
gpt4 key购买 nike

这是目录结构

/domain.com
/public_html
/functions
/image
/mobile
/www

/domain.com/public_html/www 文件夹有一个文件 index.php默认的 Web 目录是/user/public_html/www在索引文件中是一个包含函数的包含包括“../functions/function.inc”这没有问题当我想链接到图像文件夹中的图片时,我没有得到任何结果例如

<img src="../image/graphic/logo.gif" alt="alt text"/>

有没有人知道为什么图像链接不起作用以及如何正确链接到图像文件?

我试过了 <img src="<?php echo $_SERVER['PHP_SELF']; ?>../image/graphic/logo.gif" alt="alt text"/>

但这给了我同样的结果当我围绕图像建立链接以获取属性时,我将其作为路径 http://domain.com/image/pc/tattoo_small/small_2008_10_22_001.JPG路径应该是 http://domain.com/public_html/image/pc/tattoo_small/small_2008_10_22_001.JPG当我尝试直接浏览到此网址时 http://domain.com/public_html/image/pc/tattoo_small/small_2008_10_22_001.JPG我收到 404 文件未找到错误因为默认的网络目录是/domain.com/public_html/www我试过了 http://domain.com/../image/pc/tattoo_small/small_2008_10_22_001.JPG进入图像文件夹,但这也无济于事。

任何人有任何想法,或者是否不可能通过 html 链接到默认 Web 目录之外的图形文件?

感谢阅读到这里

感谢您到目前为止的回答。我将尝试使用推荐的解决方案之一来解决我的问题,并在此处报告我的工作解决方案。我希望图像文件夹与 www 和移动文件夹处于同一级别,因为用于 pc (www) 版本和移动版本的某些图像是相同的。当然,在 www 和移动文件夹中获取图像文件夹会更容易,我想这就是我要做的。

谢谢大家的建议。我不打算使用脚本的主要原因是脚本将是一个简单问题的困难解决方案,而且因为我真的不知道如何将图像包装在 css 类中以及如何提供 alt图片的文本。

最佳答案

无法直接访问 webroot 之外的文件;这是有充分理由的内置安全限制。

然而,可以使用 PHP 脚本为您提供这些图像。这样你就可以像这样调用图像:

/image.php?file=myfile.jpg

并使用file_get_contents()获取文件内容并将它们打印到您的浏览器。您还应该将 header 发送给客户端,在本例中使用 PHP 的 header()功能。一个简短的例子:

<?php

$file = basename(urldecode($_GET['file']));
$fileDir = '/path/to/files/';

if (file_exists($fileDir . $file))
{
// Note: You should probably do some more checks
// on the filetype, size, etc.
$contents = file_get_contents($fileDir . $file);

// Note: You should probably implement some kind
// of check on filetype
header('Content-type: image/jpeg');

echo $contents;
}

?>

为此使用脚本还有更多优势:

  • 例如,您可以跟踪下载并实现计数器
  • 您可以将文件限制为经过身份验证的用户
  • ...等等

关于php链接到默认网络目录之外的图像文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/258365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com