[英]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.