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

Problem z wyświetlaniem obrazu bazy danych php

Jeśli zapisałeś zawartość obrazu w bazie danych, możesz użyć data: uri wyświetla tę zawartość w <img /> etykietka. Umożliwia to osadzenie treści różnego typu MIME w innej treści, patrz schemat identyfikatora URI danych .

Ale tak naprawdę nie powinieneś zapisywać żadnych plików (bez względu na obraz lub nie) w bazie danych. Pliki należą do systemu plików, jak sama nazwa wskazuje. Otrzymujesz ogromne koszty zapisywania plików w bazie danych. Specjalnie do obrazków potrzebujesz (być może) skryptu php, który ładuje obrazek, np. jeśli używasz czegoś takiego jak <img src="showimage.php?id=5" alt="..." /> . Dla każdego obrazu musisz wywołać dodatkowy skrypt php, a nic nie zyskujesz. Wszyscy powie ci, że lepiej jest zapisać pliki w systemie plików i załadować je przez system plików w normalny sposób. Używasz więc tagów takich jak <img src="images/foobar/xyz.png" alt="..." /> zamiast. Nawet „Nie chcę żadnych„ uszkodzonych linków” do obrazów w mojej bazie danych” argument się nie liczy, ponieważ po prostu używasz identyfikatora w ścieżce i używasz file_exists() aby sprawdzić, czy link do obrazu jest ważny czy nie.

$path = 'images/useravatars/'.$row['ID'].'.png'; // as an example
if (file_exist($path)) {
     echo '<img src="'.$path.'" alt="username" />';
} else {
     echo '<img src="images/noimage.png" alt="No Image found" />';
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Naprawianie uszkodzonego kodowania UTF-8

  2. tłumaczenie mysql_fetch_array na PDO::FETCH_NUM

  3. Błąd Golang MySQL - packets.go:33:nieoczekiwany EOF

  4. Doktryna:O AKTUALIZACJI ZDUPLIKOWANEGO KLUCZA

  5. Odpowiednik PDO mysql_num_rows lub mssql_num_rows