Walczę z pewnym tematem i już brakuje mi pomysłów. Może mnie ktoś naprowadzi.
Posiadam w bazie tabelę, w której przechowuję załączniki (pliki różnego formatu) dodawane przez użytkowników.
Skrypt odpowiedzialny za upload plików do bazy wygląda tak:
<?php require "/volume1/web/Joomla_1.5/connection/connection.php"; connection(); { $fileName = $_FILES['plik_zalacznika']['name']; $tmpName = $_FILES['plik_zalacznika']['tmp_name']; $fileSize = $_FILES['plik_zalacznika']['size']; $fileType = $_FILES['plik_zalacznika']['type']; { } $query = "INSERT INTO tbl_zalaczniki_sprawy_porz (zalaczniki_nazwa_pliku, zalaczniki_rozmiar_pliku, zalaczniki_typ_pliku, zalaczniki_plik ) ". "VALUES ('$fileName', '$fileSize', '$fileType', '$content')"; } ?>
Pliki zapisywane są w polu typu blob (jest to świadomy wybór), a cały skrypt działa prawidłowo bez żadnych problemów.
Schody zaczynają się podczas pobierania plików z bazy.
Skrypt odpowiedzialny za to wygląda tak:
<?php require "/volume1/web/Joomla_1.5/connection/connection.php"; connection(); { $query = "SELECT zalaczniki_nazwa_pliku, zalaczniki_typ_pliku, zalaczniki_rozmiar_pliku, zalaczniki_plik " . "FROM tbl_zalaczniki_sprawy_porz WHERE id = '$id'"; exit; } ?>
Mianowicie, mogę pobrać pliki z bazy i zapisać je na dysku lecz części z nich nie mogę otworzyć mimo, że mają taki sam rozmiar jak oryginały. Bez problemu otwierają się pliki *.pdf, ale już np. *.png lub *.jpg lub *.xls są błędne. Sam zapis do bazy jest prawidłowy, bo gdy pobieram zapisane w bazie pliki za pośrednictwem phpMyAdmin na dysk, to mogę je wszystkie później otworzyć bez żadnego problemu. Kombinuję już na różne sposoby i nie wiem co jest tego przyczyną.
Czy wpływ na to może mieć konfiguracja serwera (jest to serwerek Synology DS712+) np. ustawienia dotyczące mime type ?.