Leszek Dąbrowski

Leszek Dąbrowski Financial Systems
Director at JLL

Temat: Przechowywanie plików w bazie SQL

napsałem tego samego posta na forum PHP, bo nie wiem, które jest właściwsze


Witam,
zastanaiwam się jak wykonać takowe cudo:

Założyłem stronkę do nauki angielskiego, ( http://poligloci.pl) i chcę na niej umieścić bazę artykułów. Póki co pracuję nad modułem z artykułami, tzn treść jest w pliku html includowana na stronie głównej.

Chciałbym jednak zrobić tak, że do niektorych artykułów będzie dodawany plik z nagraniem lektora i jakis obrazek. Póki co potrafiłbym to zrobic tylko poprzez przetrzymywanie tych plikow na serwerze i wkladanie ścieżek do nich w samuch artykułach.

A czy da się przechowywac to wszystko w samej bazie (artykuł, plik mp3, zdjęcie). Powiem szczerze, że nie wiem od czego zaczac poszukiwania rozwiązania. Czy temat danych typu blob to dobry kierunek.

jesli macie to poprosze namiary na jakąs stronę o tej tematyce (jak wykonac upload i jak potem wyświetalć wszystko na stronie). W sieci jest dużo gotowych skryptów do galerii zdjęć, ale wolałbym sam poczytac na temat technologii i może uda mi sie coś napisać ręcznie.

z góry dziękuję za pomoc
Jakub L.

Jakub L. Programista

Temat: Przechowywanie plików w bazie SQL

Da się, poczytaj o mime types.
Robisz bazę: nazwa varchar, mime varchar, content bytea albo inny blob i plik w php, który na początku wysyła odpowiedni header: Content-Type: X gdzie X odczytujesz z bazy - właśnie z pola mime, a potem pompujesz content.

Temat: Przechowywanie plików w bazie SQL

Da się, tylko czy ma to sens?

Jeżeli chcesz użyć do tego np MySql to odradzam bo stracisz na wydajności przy większym obciążeniu serwera.

Pliki trzymaj na dysku a do przeglądarki przekaż go odpowiednim nagłówkiem, jak nie chcesz linkować bezpośrednio.

http://pl.php.net/manual/pl/function.header.php

Pozdrawiam
Grzegorz G.

Grzegorz G. ASE / Systems
Architect, Syniverse

Temat: Przechowywanie plików w bazie SQL

To zależy w sumie jaka baza. W MSSQL jakiś chyba typ jest - binary? image? Nie pamiętam w tej chwili. W Oracle masz BLOB - wszystko można tam wrzucić, do 4GB. Coś wspomniałeś o tym blob'ie - więc jeżeli rzeczywiście używasz Oracle to jest to najlepsza droga. Nie żadne BFILE (to wskaźniki na pliki) tylko właśnie BLOB.

W ogólności jeżeli Twój DBMS wspiera takie obiekty (binarne) to jest to bardzo dobry pomysł - odejdą problemy z bezpieczeństwem, backupami, metadanymi o plikach, ...

konto usunięte

Temat: Przechowywanie plików w bazie SQL

Paweł W.:
Da się, tylko czy ma to sens?

Jeżeli chcesz użyć do tego np MySql to odradzam bo stracisz na wydajności przy większym obciążeniu serwera.

Pliki trzymaj na dysku a do przeglądarki przekaż go odpowiednim nagłówkiem, jak nie chcesz linkować bezpośrednio.

http://pl.php.net/manual/pl/function.header.php

Popieram. W bazie trzymasz tylko meta dane (format, ścieżka/nazwa pliku) a plik na dysku. Trzymanie w bazie ma swoje zalety - jeśli są to pliki XML a Ty masz bazę wspierającą ten typ (np. IBM DB2).

Zobacz też (znalezione w Google):
http://www.kess.snug.pl/?sid=10&pid=38
http://www.tizag.com/phpT/fileupload.php
Marcin Tarapata

Marcin Tarapata Analityk/Tester

Temat: Przechowywanie plików w bazie SQL

trzymanie w MySQL plików (BLOB) powoduje spadek wydajności w porównaniu z danymi trzymanymi fizycznie na dysku, ale super się taki system backupuje :)
Leszek Dąbrowski

Leszek Dąbrowski Financial Systems
Director at JLL

Temat: Przechowywanie plików w bazie SQL

Witam,

dziękuję za wszystkie porady.
Chyba zdecyduję się na fizycznie trzymanie na dyskach, a info o plikach w bazie.
Dariusz Żukowski

Dariusz Żukowski [keczerad]
Programista z
zamiłowania.

Temat: Przechowywanie plików w bazie SQL

Marcin T.:
trzymanie w MySQL plików (BLOB) powoduje spadek wydajności w porównaniu z danymi trzymanymi fizycznie na dysku, ale super się taki system backupuje :)

to nie jest takie jednoznacze bo jak delikwennt wrzuci do jendego katalogu tysiace plikow to juz nie bedzie to szybsze.
Łukasz Rakowiecki

Łukasz Rakowiecki Credit Suisse DSE

Temat: Przechowywanie plików w bazie SQL

[author]Dariusz

konto usunięte

Temat: Przechowywanie plików w bazie SQL

Leszek D.:
...
Chyba zdecyduję się na fizycznie trzymanie na dyskach, a info o plikach w bazie.

To jedyne rozsądne rozwiązanie w przypadku większych plików.

konto usunięte

Temat: Przechowywanie plików w bazie SQL

[author]Dariusz

Następna dyskusja:

Wykonywanie plików *.sql




Wyślij zaproszenie do