簡體   English   中英

無法在PHP中顯示來自MySQL數據庫的圖像

[英]Can't display image from MySQL database in PHP

我在這里遇到一些問題,希望有人能幫助我。 不幸的是,我找不到解決方案,所以您是我的最后希望。

我將圖像上傳到數據庫,但無法顯示。 當找不到或加載圖像但我的數據庫中充滿圖片時,我得到的是該圖標:-/

這是我的PHP代碼:

<?php

$dbhost = "localhost"; 
$dbuser = "DBConnector"; 
$dbpassword = "root"; 
$db = "phplogin";
$b = $_POST['bildbestaetigen'];

if(isset($b)){

if(getimagesize($_FILES['bild']['tmp_name'])== FALSE)
{
    echo "Choose a picture.";
}
else
{
    $image= addslashes($_FILES['bild']['tmp_name']);
    $name = addslashes($_FILES['bild']['name']);
    $image= file_get_contents($image);
    $image= base64_encode($image);
    saveimage($name,$image);
}

}

displayimage();


    function saveimage ($name,$image){

    $link = mysqli_connect("localhost","root","") or die("Verbindung zur Datenbank konnte nicht hergestellt werden!");
    mysqli_select_db($link,"phplogin") or die ("kann nich finden ");
    $result= mysqli_query($link, "insert into bilder (name,bild) values ('".$name."','".$image."')");

    if($result)
    {

        echo "Image uploaded";

    }
    else
    {
        echo "<br/> Image not uploaded";
    }

    }


function displayimage(){
$link = mysqli_connect("localhost","root","") or die("Verbindung zur    Datenbank konnte nicht hergestellt werdengjghghghh");
    mysqli_select_db($link,"phplogin") or die ("kann nich finden ");

    $result = mysqli_query($link,"SELECT * from bilder");
    while( $row = mysqli_fetch_array($result));
    {
    echo '<img height="300"  width="300" src="data:bild;base64,'.$row[2].'         ">';

    }
    mysqli_close($link);    
}


?>

我沒有運氣就嘗試了很多東西。

我希望有一個人可以幫助我!

在PHP上傳中使用此W3Schools教程 如注釋中所述,將圖像路徑保存在數據庫中,而不是文件本身,這可能需要blob數據類型,並且會很快使數據庫膨脹。

為此,通過使用$ _FILES數組(確保文件夾存在)指定目標文件夾並使用move_uploaded_file()函數,將用戶選擇的文件從HTML表單作為物理文件從HTML表單上傳到Web服務器上:

$targetfile = "uploads/" .basename($_FILES['bild'])
...
# FILE VALIDATION
...
move_uploaded_file($_FILES['bild']['tmp_name'], $targetfile)

然后,將此圖像路徑(文本字符串)保存到數據庫中(假設bild是文本數據類型):

insert into bilder (name,bild) values ('".$name."','".$targetfile."')

最后,就像您從數據庫表中獲取記錄並在html的img標記的src屬性中回顯圖像路徑之前所做的一樣(通過將SQL查詢過濾為特定用戶或圖像ID的方式,因為可能會輸出多個記錄):

echo '<img height="300" width="300" src="'.$row[2].'">';

請記住,$ targetfile變量將包含圖像位置的完整絕對路徑。

嗨,假設您已將圖像正確上載到數據庫以及服務器內部某個位置的文件夾。 您可以使用此代碼將其打印出來。

<?php
//codes to connect to database and mysql query to get image name from table inside database...

$target_dir = "uploads/"; //path of where the images are store on your server
$image_name = $row_image['image_name']; //name of the image retrieved by mysql query

                //print the image
echo "<img src=" . "'" . $target_dir . "/" . $image_name . "'" . "style='width:50px;height:50px'/>";
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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