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" />';
}