

[MYSQL] Vloženie súboru *.rar do BLOB
Dobry den.
Zaujimalo by ma, ci je mozne do MYSQL do pola typu BLOB, vlozit subory ako *.rar, *.exe, *.avi, *.mp3.
Moj skript bez problemov do BLOB-u uklada ale len dokumenty a obrazky.
Takze vie niekto o tom ci sa tam daju vlozit aj ine veci ako dokumenty a obrazky? Ak hej , tak ako ?
vopred dakujem.
Řekl bych, že by to mohlo být tímto?
http://dev.mysql.com/doc/refman/5.0/en/string-synta x.html
Mam tam funkciu
.
To by malo stacit. Nie ?
No, mělo... A tak co ti přesně nefunguje?
article.php
No hodim sem maly fragment kodu:
Pri uploadovani *.rar alebo *.exe atd ... to vyhodi dva warningy:
Zkus takto:
- escapovat vkládaný obsah a číst soubor binárně (rb)
- a ten soubor uzavřeš až po vložení do DB?
Jaaaaj rb som zabudol. Vdaka.
Subor uzatvaram hned po precitani, este pred sql dotazom.
Len sprava sa to strasne divne. Niektore archivy a exe subory to uz uklada. Ale niektore stale nie.
Bud to vypise tie dva warningy, cize nemoze ho nacitat, alebo dokonca pri jednom exe-cku mi tam hodi chybu mysql: MySQL server has gone away.
Je to divneee ... ale pokrok je ze to uz aspon niektore kopiruje.
Jestli není nějaký problém s velikostí souboru - viz. typy blobu.
A soubor bych raději uzavřel až po provedení MySQL Query...
s blobom nie je problem .... pole v DB mam nastavene na LONGBLOB , do ktoreho mozem upratat 4 GB subor. A ja skusam vkladat len male execka tak do 5 MB.
Skusim ho uzavriet az po query.
A nemůže být nějaký problém ještě s názvem souboru? Mezery, wildcards...?
Tam je vlastne uplne jedno kde sa ten subor uzatvara pretoze on chybu vyhodi uz pri fread().
Trosku som testoval execka a videa a prisiel som na taku vec. Ze vsetky exe subory a videa mensie ako 1 MB kopirovat idu. Ale vacsie hodia chybu sql.
Aby som to upresnil:
Vacsie exe subory a videa wmv vracaju sql error.
A ostatne videa vracaju tie dva warningy, ze nemoze citat subor.
Ale v databaze mam LONGBLOB aj v php konfiguracii som si nastavil POST data na 1 GB aj UPLOAD na 1 GB. Tam problem nemoze byt.
To bys musel zkusit soubor "rozřezat".
A neda sa ta velkost dotazu sql niekde nastavit ? Pozeral som php.ini ale tam nic nie je. Este mozno v my.ini by sa dalo, ale tam sa az tak nevyznam.
tak predsa som v my.ini nasiel to nastavenie ...
A uz to nehadze sql error .. ale tie warningy
Tak je asi nějaký problém s tím souborem - nelze přečíst, je špatně zadaná cesta, případně nějaký problém s názvem, jak jsem už psal...?
S nazvami suborov to nema nic, pretoze dal som len jednoduchy nazov:
a aj tak to vyhodilo warningy.
Zistil som este taku vec, ze aj tie warningy mi vypisuje len ked dam subor vacsi ako 1 MB.
Takze by to teoretciky mohlo byt este nieco v nastaveniach. Ale uz neviem co. Lebo som nastavoval upload_max_filesize, post_max_size aj execution time. V my.ini som nastavil max_allowed_packet.
Co ine by to este mohlo byt?
Takze dalsie novinky .... zistil som ze pri suboroch nad 1 MB to stale vypisuje aj tu SQL chybu (ale nie pri vsetkych).
Niekde to hodi warningy. Ale subor vacsi ako 1 MB tam nedostanem ... (ani obrazok).
Nasiel som na jednej stranke toto:
Ak som tomu spravne pochopil, tak pri zapnutych magic_quotes to nefunguje spravne ?
Pozn.: moj server bezi na Windows
Uz som sa pohol dalej ... ale ak uploadujem do DB subor vacsi ako 1 MB vyhodi mi to sql chybu:
. Číslo chyby:
.
V my.ini mam nastaveny max_packet a aj tak to hadze tuto chybu.
Vie mi niekto poradit preco mozem uploadovat len subory do 16 MB ?
V nastaveniach mysql som zvysil max allowed packet na 256 MB. Skusal som aj ine premenne zvysovat.
Ale vie niekto o premennej ktoru treba navysit, aby som mohol uploadovat do DB subory vacsie ako 16 MB ?
vdaka
Nejde to ani přes phpMySQLAdmina?
Aká je verzia MySQL servera a klienta - sú rovnaké alebo sa upgradoval server a na klienta sa zabudlo?
Server mam 5.0.33 a klienta mam 3.23.49. Ale nie je mi teda uplne jasne co je to ten klient . . .
Takze klienta som upgradoval tiez na verziu 5.0.33 a uz to konecne ide. Uz mam len problem ze mi to hodi takuto peknu chybu ked uploadujem vacsi subor:
Ja som skusal zdvihnut niektore premenne ... ale nevie nahodou niekto ktora presne moze sposobovat tuto chybu?
Jaaaj boze .. ja puk .. vsak to je Apachovska chyba a nie MYSQL
OK problem vyrieseny .... uz to slape ... Dakujem vsetkym za rady.
Pozri si memory_limit v php.ini.
edit: zasa neskoro.
Klientom je rozšírenie pre PHP, ktoré sa pripája na MySQL. Verziu klienta, ktorú používa PHP, zistíš napr. použitím funkcie mysql_get_client_info .
Asi bude treba upgradovať libmySQL.dll, ktorú používa php_mysql.dll.
edit: neskoro.
Nevadi ze neskoro ... ale s tou verziou klienta si ma naviedol spravnym smerom. Lebo mal som tam PHP4, tak som to prepol do PHP5 a vsetko islo OK. Az na tu pamat ktoru som si este musel navysit v php.ini.
vdaka