Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nie można pobrać danych obrazu z tabeli i wyświetlić obrazu

Najpierw musisz zapisać obraz z wyjścia file_get_contents do Twojej bazy danych. A potem umieszczasz to w imagecreatefromstring i pokaż swój obraz.

Oto prosty przykład. Może to ci pomoże :)

$data = file_get_contents("ACL.jpg");
$img = imagecreatefromstring($data);
header("Content-Type: image/jpeg");
imagejpeg($img);

EDYTUJ:

wystarczy umieścić ten kod :

$statement->bind_result($imageid, $title, $image)
while ($statement->fetch()) {
    if ($image == NULL) {
        echo "Image data does not exist!";
    } else {
        $img = imagecreatefromstring($image);
        header("Content-Type: image/jpeg");
        imagejpeg($img);
    }

}

EDYTUJ POPRAWKA:

uploads.php

W tym pliku musisz zmienić swoje $statement->bind_param('sb', $title, $content); zostań $statement->bind_param('ss', $title, $content);

if (isset($_POST['submit'])) {
    $title = $_FILES['image']['name'];
    $data = $_FILES['image']['tmp_name'];
    $content = file_get_contents($data);
    $query = "INSERT INTO images (title, image) VALUES (?, ?)";
    $statement = $databaseConnection->prepare($query);
    $statement->bind_param('ss', $title, $content);
    $statement->execute();
    $statement->store_result();
    $creationWasSuccessful = $statement->affected_rows == 1 ? true : false;
    if ($creationWasSuccessful)
    {
        echo "Works!";
    } else {
        echo 'failed';
    }
}

showimage.php a następnie pokaż to za pomocą tego :

$img = imagecreatefromstring($image); header("Content-Type: image/jpeg"); imagejpeg($img); w ostatnim oświadczeniu

if (isset($_GET['id'])) {

    $id = $_GET['id'];
    $query = "SELECT id,title,image FROM images WHERE id = ?";
    $statement = $databaseConnection->prepare($query);
    $statement->bind_param('i', $id);

    $statement->execute();
    $statement->store_result();

    if ($statement->num_rows >= 1)
    {
        $statement->bind_result($imageid, $title, $image)
        while ($statement->fetch()) {
            if ($image == NULL) {
                echo "Image data does not exist!";
            } else {
                $img = imagecreatefromstring($image);
                header("Content-Type: image/jpeg");
                imagejpeg($img);
            }

        }        
    }
}

Mam nadzieję, że to działa dobrze, przetestowałem to i działa dobrze... :)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Aktualizacja MYSQL przy użyciu wyniku sum() w wielu tabelach

  2. Jak używać mysqlimport do odczytywania wyniku mysqldump --databases

  3. Automatyczne odświeżanie tabeli bez odświeżania strony PHP MySQL

  4. Jakie są różnice między wartościami Null, Zero i Blank w SQL?

  5. Odmowa uprawnień PHP MySQLi, ale działa z MySQL CLI