Käytän kotisivuillani hyväksi jonkin verran MySQL -tietokantaa. Nyt pitäisi lisätä sivuille iso määrä kuvia ja pystyä selailemaan niitä esim. navigointi -nappien avulla.
Miten valokuvat siis kannattaa lisätä tietokantaan? Teenkö "valokuvat" taulun jonne sarakkeiksi vaikka "kuva_id", "ryhma", "polku". Tohon polkuun sitten se kuvan nimi ja osoite tyyliin "/kuvat/tapahtuma1/kuva1.jpg"
Muita järkeviä toteutustapoja?
Miten valokuvat siis kannattaa lisätä tietokantaan? Teenkö "valokuvat" taulun jonne sarakkeiksi vaikka "kuva_id", "ryhma", "polku". Tohon polkuun sitten se kuvan nimi ja osoite tyyliin "/kuvat/tapahtuma1/kuva1.jpg"
Muita järkeviä toteutustapoja?
Vastaukset 5
Vanhimmat
Jos tilaa löytyy niin heitä kuvat suoraa tietokantaa ole objekteina
Mites tuo tapahtuu ?
Suosittelisin kuitenkin tekemään niinkuin alunperin ajattelit, että kantaan laitat tiedon mistä kuva löytyy ja talletat itse kuvatiedoston ihan normaaliin hakemistoon. MySQL:ssä ei ole mitään OLE object tietotyyppiä, mutta lähinnä sitä vastaava tyyppi MySQL:ssä on blob. Joka tapauksessa tuo ensimmäinen tapa on helpompi toteuttaa kuin alkaa kikkailemaan tuon blobin kanssa.
Minäkin luin jostain, että kuvat olisi parempi varastoida tiedostoina kannan ulkopuolelle, mutta tästäkin huolimatta änkeän ne omassa sovelluksessani MySQL:ään blobeina. Kantaan saan kuvat php:llä ja html-formeilla, mikä ei tietenkään sovi oikein suurille kuvamäärille. Pitäisi varmaan rakennella jokin javapalikka, joka runttaisi kasan kuvia kerralla. PHP-pätkä näyttää jotakuinkin tältä:
$temp = fopen($_FILES['image']['tmp_name'],"rb")
$kuva = addslashes(fread($temp ,filesize($_FILES['image']['tmp_name'])));
$statement = "INSERT INTO kuvataulu (file) VALUES('" .$kuva. "');";
Muista myös sulkea $temp kun et enää käytä. PHP-manuaali ja w3.org auttaa varmaan tästä eteenpäin.
Jos voit käyttää servlettejä/jsp:ta tms. niin tee blob -kenttä mysql -kantaan ja luet bittimössönä kuvat kantaan/kannasta pois. Muut kentät voivat olla kuten esität, polkua ei sitten tietenkään tarvita.