chci rvat obrazky do databaze, treba jako BLOB ale jak? :) a hlavne jak to pak dostat ven a zobrazit? pres GD? nedelal to nekdo uz tady?
Printable View
chci rvat obrazky do databaze, treba jako BLOB ale jak? :) a hlavne jak to pak dostat ven a zobrazit? pres GD? nedelal to nekdo uz tady?
to se mi teda moc nezda...co takhle tam rvat jen jmena souboru a obrazky ukladat do nejaky adresare ???
umis SQL?Citace:
Původně odeslal Glottis
No testoval sem to s gifama a MySQL, chodilo to, ale pri vetsim poctu nepouzitelny. Lepsi tam jen zaindexovat nazvy s cestou a vlasti obrazky hodit na disk.
Dá se to uložit jako blob, ale nemá to smysl... Mnohem lepší je ukládat tam názvy souborů.
vsak to ja tak bezne delam ze poukladam jmena souboru ale jen me to tak napadlo.
treba by se psal nejakej clanek tak to nabusit do databaze. a bylo by. odpadl by ftp pristup nebo http upload. no ael asi to tak nakonec skonci.
jezevec: jak jsi to delal? ten gif tam asi dostanu ael jak stim ven?
mraky: umim a co neumim se naucim :)
no jako nouzovka by to slo resit ze bys pokazde vytvoril tmp soubor obrazku a ten hodil na stranku.... a pak ho zas smaznul
pan google mi napovedel :)
http://www.weberdev.com/ViewArticle.php3?ArticleID=3
http://www.onlamp.com/pub/a/php/2000...php_mysql.html
http://www.evolt.org/article/Storage.../?format=print
pekne :) dik ze panu googlovi dekuju ;)
tak jsem zkousel hned podle toho prvniho a fakt to funi :) a jsem vic nez spokojeny. je to i rychle. sice to vic zatizi databazi ale co na tom :) uvidim jak se to bude chovat v provozu
nemate nekdo nakej link na klasickej zpusob(bez blobu)? ja nemuzu nic najit :oops: na intervalu popisujou akorat toho bloba. potreboval bych nakej priklad abych to moh zkusit, zatim se me to nak nedari :-(
jak bez blobu? obrazek do databaze a bez blobu?
no ja myslel pres ty odkazy. proste klasicky obrazky na disku a v db sou jen linky na ne. ale me to porad neni jasny jak to udelat a tak by se me hodil nakej clanek. ale vsude co sem nasel to delaj jen pres blob.
udelas si tabulky s patricnyma sloupcema, ze, a pak na sajtu si das nekam edit na soubory. nekde na servru adresar s pravama zapisu a do obsluhy pak muzes dat neco takovehleho. je to jen ilustrativni
v html takto ten edit. jeste form si pridas
a do toho neco .php das tohle, z toho sql dotazu je jasne jak bude vypadat ta tabulka. treba taktoKód:<form method='post' action='neco.php' enctype='multipart/form-data'>
<input type='submit' value='Add Image' class='forms' name='post_dataform'>
Kód:CREATE TABLE `images` (
`ID_image` int(10) unsigned NOT NULL auto_increment,
`ID_section` smallint(6) unsigned NOT NULL default '0',
`ID_post` int(10) unsigned NOT NULL default '0',
`F_name` varchar(100) NOT NULL default '',
`F_ext` varchar(100) NOT NULL default '',
`F_size` mediumint(8) unsigned NOT NULL default '0',
`D_owner` varchar(30) NOT NULL default '',
PRIMARY KEY (`ID_image`)
) TYPE=MyISAM AUTO_INCREMENT=0 ;
Kód:If(($add_image_name != "") && ($add_image_type != "image") ) {
//if (!file_exists("./postdata/$ID_section")) mkdir("./postdata/$ID_section", 0777);
//if (!file_exists("./postdata/$ID_section/$ID_post")) mkdir("./postdata/$ID_section/$ID_post", 0777);
@copy("$add_image", "./postdata/[$ID_section][$ID_post]-$add_image_name")
or die("No copy!");
if (file_exists("./postdata/[$ID_section][$ID_post]-$add_image_name")) {
mysql_query("INSERT INTO `images` (`ID_section`, `ID_post`, `F_name`, `F_size`, `F_ext`, `D_owner`) VALUES (
'$ID_section',
'$ID_post',
'[$ID_section][$ID_post]-$add_image_name',
'$add_image_size',
'$add_image_type',
'$D_owner'
)", $connection) or die("Can't Perform Query");
}
}
uff, ja to vubec nechapu, a nejak me to nefunguje. potreboval bych nakej clanek nebo neco funkcniho :oops:
a co na tom konktretne nechapes? uploadujes soubor na server, nakopirujes do nejake slozky s mznosti zapisu, a informace o umisteni si narves do databaze. jednoduse i to rict nejde :) clanek ti hledat nebudu, hledej sam
no tak uz me funguje upload souboru na disk, ale podle jinyho skriptu. nechapu proc tam mas tohle:
pochopil sem ze musim to add_image_name prepsat ale proc je v te druhe podmince ze typ nesmi byt image? i jdyz je pravda ze u jpg me to pise image/pjpeg.Kód:If(($add_image_name != "") && ($add_image_type != "image") )
a dal me nejsou jasny ty $ID_... promenny. to je nejak automaticky dany jako treba funkce?
jo a nevim co to je D_owner? :?:
no proste me to jakz takz funguje, ale zajima me co jsou ty informace, ktery ukladas do db. nikdy sem to nedelal a tak bych tam chtel rvat takovy ty veci co se tam obecne davaji. tady ale nevim co znamena ID_section a ID_post a D_owner. to sou nejake vlastnosti toho souboru?
aha, tebe tam matou ty me promene co pouzivam dal v aplikaci, tech si nevsimej
ta podminka tam byt nemusi, staci kontrolovat ze to neni prazdne.
jinak treba $add_image_name je automaticka promena. je to odvozene od $add_image coz je ten file selektor a pak v privlastku name je nazev filu a v type jeho typ
pak to D_owner tam sem si ukladal kdo to uploadoval
ID_image je proste jen cislo obrazku, nic podstatneho
ID_section je cislo sekce kam kam patri clanek kde je obrazek umisten, to ty nepotrebujes
ID_post je cislo clanku kam patri obrazek, pro tebe opet nepodstatne
takze to co nechces vyhazej, tebe zajima praktycky jen cesta, nazev filu a to je vse a treb apripona, ani velikost nepotrebujes. a ty podminku nazacatku kline na pokusy vyndej a pak si nejakou dej az to nejak rozchodis
ok, este dotaz: kde tam ukladas cestu k obrazku? nikde to nevidim. sem myslel ze to je ta nejdulezitejsi vec - mit tam link na ten image. takze pokud to tam chci dat staci tam vlozit relativni cestu vzhledem k adresari kde mam skript?
soubor nakopiruju pod
./postdata/ pod jmenem [$ID_section][$ID_post]-$add_image_name
sypu to ja osobne do jednoho adresare a tim id zajistuju jakous takous jedinecnost. neslo mi totitz na mem hostinu vytvaret adresare s pravy zapisu pres php. ukladam si pak jen jmeno tohou souboru tedy [$ID_section][$ID_post]-$add_image_name protoze vim ze je to pod ./postdata/
tobe nebrani pokud ti to hosting umozni si to tridit i do adresaru a ukladat s cestou, nebo do jednoho a ukladat i s cestou. je to jen na tobe
tak co? uz jsi prozrel? beha?
jj beha :) super. dik
ted resim jak v php zjistim pocet souboru v adresari.
budu totiz mit 16 adresaru a v kazdym bude max. 512 obrazku. no a musim to automaticky dat do dalsiho adresare kdyz ten predchozi uz bude plnej. a navic je budu prejmenovavat, ale to uz mam hotovy.
jo mozna jeste jeden dotaz: je v php nejaka funkce ktera by vracela priponu daneho souboru? ja nic takovyho nenasel :?:
pocet souboru: podivej se na fci opendir().
pripona: podivej se na fci strrchr().
ale opendir me moc nepomuze, mozna pak readdir, ale ta by musela v cyklu projit vsechny soubory. to fakt neexistuje funkce, ktera vraci pocet souboru v adresari?
a ten strrchr me taky moc nepomuze, protoze ja nevim jakou ten soubor bude mit priponu
ehm, KILL YOUR MOTHER, RAPE YOUR DOG, revitalize your dead brain!Citace:
Původně odeslal Braindead
copak nam asi vrati strrchr($jmenosouboru, ".") Zkus o tom popremyslet, ale kdyby se ti to nepovedlo rozlousknout, tak ti to reknu dopredu: ze jmena "soubor.xxx" ti to vrati retezec ".xxx" coz je to cos chtel, nebo ne?
Co se tyce poctu souboru v adresari.. to opendir a readdir by ti melo stacit, ne? koneckoncu, pochybuju, ze by funkce na to delana pracovala jiank, leda ze by byla hoodne zavisla na pouzitym filesystemu, rek bych, ze ne kazdej filesystem ma tuhle informaci nekde extra ulozenou..