Bazując na wielu tutorialach dostępnych w internecie próbuję wgrać zdjęcia do bazy, a następnie wyświetlić je. Problem polega na tym, że:
a) fread wywala się gdy wgrywam jakikolwiek format poza .PNG

W pewnym momencie zacząłem 'na pałę' kopiować kody z tutoriali i również napotkałem ten sam problem. Czy zanim zabrałem się do pracy powinienem zainstalować jakieś magiczne biblioteki o których nikt nigdzie nie wspominał (do obsługi innych formatów poza PNG)? Czy mam błąd w kodzie którego nie widzę?
Localhost: WebServ
Baza:
CREATE TABLE `zdjecia` ( `id_zdjecia` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `uzytkownik` int(10) UNSIGNED NOT NULL, `zdjecie` mediumblob NOT NULL, `typ` varchar(20) character SET utf8 NOT NULL, `rozmiar` int(11) NOT NULL, `nazwa` varchar(30) character SET utf8 collate utf8_polish_ci NOT NULL, PRIMARY KEY (`id_zdjecia`) ) ENGINE=InnoDB DEFAULT CHARSET=latin2 AUTO_INCREMENT=3 ;
zawartość bazy:
INSERT INTO `zdjecia` (`id_zdjecia`, `uzytkownik`, `zdjecie`, `typ`, `rozmiar`, `nazwa`) VALUES (2, 13, [[i]tutaj długi ciąg danych zdjęcia[/i]] , 'image/png', 11187, 'naglowek.png');
formularz html:
skrypt dodający zdjęcie:
<?php require_once('funkcje_dodatkowe.php'); //funkcja polacz_db try { $fileName = $_FILES['zdjecie']['name']; $tmpName = $_FILES['zdjecie']['tmp_name']; $fileSize = $_FILES['zdjecie']['size']; $fileType = $_FILES['zdjecie']['type']; $id = $_SESSION['id_sesji']; $polaczenie = polacz_db(); if(!$polaczenie) throw new Exception ("Blad łączenia z bazą danych"); $zapytanie = $polaczenie->query("insert into zdjecia values(NULL, '$id', '$content', '$fileType', '$fileSize', '$fileName')"); if(!$zapytanie) throw new Exception ("Nie udało się zapisać zdjęcia"); } catch (Exception $e){ mysqli_close($polaczenie); ?>
skrypt mający wyświetlać zdjęcie:
<?php require_once('funkcje_dodatkowe.php');//funkcja polacz_db $id = $_SESSION['id_sesji']; $polaczenie = polacz_db(); try{ $zapytanie = $polaczenie->query("select id_zdjecia, zdjecie from zdjecia where uzytkownik = '$id'"); if(!$zapytanie) throw new Exception("Wykonanie zapytania do bazy danych nie powiodło się"); while(list($uzytkownik, $nazwa) = $zapytanie->fetch_array()) } catch (Exception $e){ mysqli_close($polaczenie); ?>