Autor Zpráva
quatzael
Profil
Jaký formát má mít sloupec v MySql, když chci do něj ukládat soubory jako například .pdf nebo .jpg?

Který typ mám vybrat? (CHAR, BINARY, apod..)?
Kajman
Profil
MEDIUMBLOB či LONGBLOB
quatzael
Profil
Kajman:
Dík za rychlou reakci!
nemeja
Profil
Vyplatí se to ukládat do databáze? Nestačilo by to mít normálně jako soubory a na ně odkazovat?
quatzael
Profil
nemeja:
Těch souborů bude hafo, a měly by to být celkem malý pdf (jednostránkový), případně .jpg, takže myslím, že databáze se jeví jako daleko vhodnější.
Anonymní
Profil *
To budou provozovatelé hostingu nadšený - na hostingu který používám mi řekli, že nevidí rádi když někdo používá databázi k ukládání obrázků souborů atd.. Myslím že podobné to bude téměř všude. A pokud těch souborů bude hafo, tak si jen zbytečně zas*reš databázi a na místech kde bude potřeba ji opravdu používat bude zbytečně zasekaná(pokud je hafo třeba 10000 a databáze bude blbě navržená - což asi bude, tak stránka bude naprosto zalaglá a nepoužitelná, což v dnešní době když je na internetu všeho hodně znamená jen jediné o návštěvníky méně). Jak psal nameja, vytvoř si na serveru speciální složku kam tyto soubory budeš ukládat a do databáze pouze ukládej odkaz na tyto soubory(Nebo máš nějaký problém, který ti podobnou věc neumožnuje?).
Jan Tvrdík
Profil
Anonymní:
To jsou dost zkreslená a neopodstatněná tvrzení. I kdyby v té databází měl těch souborů milion, tak to nemusí mít nutně negativní vliv na rychlost té databáze. Mnohem víc, než na počtu těch souborů, záleží na množství a typu operací, které s nimi bude chtít provádět.
quatzael
Profil
Anonymní, Jan Tvrdík:
Bude to mít vliv na celou databázi, když to budu mít ve zvláštní tabulce?

Měly by to být soubory typu faktury apod.. tedy hlavně .pdf

Navíc ten můj provider zpoplatňuje poskytnuté místo na disku, ale do databáze toho můžu narvat prakticky neomezeně za stejnou cenu..

Co je tedy běžnější přístup?

Mě se zdá, že na zálohování by měla být lepší databáze, protože zálohovat složku s desetitisíci soubory dá přeci jenom zabrat.
ts_istudio
Profil
quatzael:
Co je tedy běžnější přístup?
Běžnější je soubory do databáze nedávat. Že to jde, je věc jedna, ale nějak mě nenapadá situace, kdy by to bylo výhodné.

Mě se zdá, že na zálohování by měla být lepší databáze, protože zálohovat složku s desetitisíci soubory dá přeci jenom zabrat.
To se ti myslím zdá špatně.
Joker
Profil
Anonymní:
To budou provozovatelé hostingu nadšený - na hostingu který používám mi řekli, že nevidí rádi když někdo používá databázi k ukládání obrázků souborů atd..
No, protože je to větší zátěž serveru, než otevřít soubor z disku.
Ale zase jestli to je hosting, který tarify počítá podle zabraného prostoru na disku a velikosti databáze, ale ne podle procesorového času, tak dobře mu tak.

quatzael:
Bude to mít vliv na celou databázi, když to budu mít ve zvláštní tabulce?
Může to záviset na typu databáze, ale podle mě nebude.
Ale načíst soubor z databáze je výpočetně náročnější, než načíst soubor z disku.

Další věc ke zvážení je, že většina levnějších hostingových tarifů mívá nezávislé kvóty na velikost databáze a na diskový prostor.
Takže může být výhodnější tahle data přesunout tam, kde tu kvótu spotřebováváte méně (např. když máte zaplněno 90% diskové kvóty a 1% databázové, bude výhodnější databáze, když to bude obráceně, tak naopak).
A hostingy zdarma, jako třeba WebZdarma, někdy mají limit na počet databázových dotazů za hodinu, takže tam je pak lepší používat soubory (když odhlédnu od toho, že WebZdarma nabízí jen hodně malou databázi, takže tam se obecně vyplatí cpát do souborů všechno co jde).
quatzael
Profil
A jak tedy lze ukládat po uploadu soubory do složky na serveru?
A hlavně potom jak umožnit zpětně download těch souborů, když nechci, aby byly veřejně přístupné?
ts_istudio
Profil
quatzael:
A jak tedy lze ukládat po uploadu soubory do složky na serveru?

A hlavně potom jak umožnit zpětně download těch souborů, když nechci, aby byly veřejně přístupné?
Po nahrání přidáš do tabulky v databázi záznam, kde budeš mít mj. název nahraného souboru a nějaký hash. Odkaz pak může vypadat třeba download.php?file=sfkghsdf.

V download.php nejdřív ověříš, jestli je splněno vše, co splněno být má (třeba nějaká session) a pak přesměruješ na soubor.
Možná to zní složitě, ale je to jednodušší, než kdybys soubory ukládal v databázi.
Kcko
Profil
ts_istudio:
Na ukládání souborů do DB nevidím nic špatného. Rozhodně to není složitější. Pokud máte např. vlastní hosting a složitě by se řešily přepisy RW na obrázky (více domén)... tak mi to přijde naprosto v pohodě.
quatzael
Profil
ts_istudio, Kcko:
Já to budu radši ukládat přímo na disk. Ale jde mi o to, že když si to uložím někam mimo doménovou složku, aby na to nebyl přístup odjinud, tak jak to můžu zase zpětně určitým osobám (podle session) umožnit stáhnout?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: