[英]Path For PHP getimagesize() Function
对于 getimagesize(),用于文件的正确路径是什么? 就我而言,我更喜欢绝对路径,但它给出了没有文件的错误,但是当我给它一个完整的 URL 时,没有错误但也没有输出。 图像显示但不显示 getimagesize() 的属性。
澄清一下,图像存储在数据库中,有一个脚本将它们拉出并提供标题,在这种情况下,这是从 foreach 循环中这样做的,因为它为动态菜单拉出多个图像。 我过去在其他网站上成功完成了此操作,此代码来自这些工作网站之一,因此不确定为什么它在这里不起作用!
问题是,什么是正确的路径类型,为什么没有输出?
这(首选)给出了没有图像的错误:
list($width, $height, $type, $attr) = getimagesize("/internals/viewers/show_image.php?ID=$MenuImage");
$imagetags = (!empty($attr)) ? $attr : "";
这也没有但没有属性:
list($width, $height, $type, $attr) = getimagesize("http://domain.loc/internals/viewers/show_image.php?ID=$MenuImage");
$imagetags = (!empty($attr)) ? $attr : "";
使用以下方式显示的图像:
echo "$MenuLink<img src=\"/internals/viewers/show_image.php?ID=$MenuImage\" alt=\"$MenuName\" title=\"$MenuDescription\" class=\"MenuTab\"$imagetags></a>\n";
这是 show_image.php:
<?php include $_SERVER ['DOCUMENT_ROOT'] . "/internals/configuration/common.php";
$ImageID = (isset($_GET['ID'])) ? $_GET['ID'] : "";
if (!$ImageID) die ("No image");
$sqlImage = "SELECT Image, ImageFormat FROM images WHERE ID='$ImageID'";
$rowImage = DBConnect($sqlImage, "Select", $siteDB);
if (!empty($rowImage)) :
$mime_type = $rowImage['ImageFormat'];
$SiteImage = $rowImage['Image'];
header("Pragma: no-cache");
header("Content-type: image/$mime_type");
echo $SiteImage;
imagedestroy($SiteImage);
endif; ?>
假设您在 Linux 或 MacOS 上运行它,以/
开头的路径在整个硬盘驱动器的根目录下启动。 因为 PHP 在服务器端运行,所以它不知道您的 Web 服务器目录的根目录在哪里。 最好使用类似/opt/apache/htdocs/internals/viewers
(只是一个例子)或相对路径的东西。 我一般使用相对路径。
编辑:您可以尝试使用getimagesize($_SERVER['DOCUMENT_ROOT'] . "internals/viewers/show_image.php?ID=$MenuImage")
,这可能适用于您的情况。
另一个编辑:因为您的图像实际上不是图像文件,所以您可以将http://
或https://
URL 传递到您的getimagesize()
调用中。 这是一个例子: getimagesize("http://" . $_SERVER['HTTP_HOST'] . "/internals/viewers/show_image.php?ID=$MenuImage");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.