簡體   English   中英

PHP getimagesize() 函數的路徑

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM