Kako ubacit link od neke slike u mysql te da ga kasnije koristim za prikazivnaje slike, a da ne koristim blob?
Link a ne blob na mysql
- poruka: 31
- |
- čitano: 4.480
- |
- moderatori:
Lazarus Long, XXX-Man, vincimus
Npr. 'images/slika1.jpg' u TEXT koloni slika
Onda za prikaz kreiraš full link direkt u kodu, npr.:
http://tvoja.stranica.org/images/slika1.jpg
Problem je održavanje konzistentnog stanja u bazi i na disku.
U MS SQL je to riješeno preko FILESTREAM tipa podataka, što u mysql još nema.
Vrlo loša praksa je stavljati slike u bazu podataka. Uploadaj slike i u bazu stavljaj link, odnosno fragment linka. Prednosti su očite.
nesto ala:
header('Content-Type: image/jpeg');
Kako ide to s fragment linkom?
Kako ide to s fragment linkom?
Uploadaš sliku na server u neki folder i bazu podataka stavljaš putanje tip /nešto/nešto/ime_slike.jpg|png|gif
Kod prikazivanja dodaš samo base url. http://www.stranica.com/nešto/nešto/ime_slike.jpg
Puno brže za izvršiti nego stavljati slike u bazu podataka, pogotovo ako su velike slike. I manje bandwidtha prema bazi.
Pa onda je bolje sliku ubacit u bazu. Recimo da trebam svaki dan uploudat neku drugu sliku. Lakse mi je napravit php skriptu da ubacuje sliku u bazu te da je brise kad je ne trebam.
Drugo pitanje. Napravio sam u php da kad upload-am sliku da mi je odmah pokaze u browseru, e sad. Kako bi mogao da link do te slike dodam u bazu podataka?
Pa onda je bolje sliku ubacit u bazu. Recimo da trebam svaki dan uploudat neku drugu sliku. Lakse mi je napravit php skriptu da ubacuje sliku u bazu te da je brise kad je ne trebam.
Ne vidim razliku između uploadanja slike u bazu ili u neki folder. Programatski gledajući.
Pa ima, kako ne. Ako tu sliku, odnosno link, dodamo u baze, pa iz te baze vuce drugi kod da prikaze na nekom drugom dijelu stranice ili podstranice.
A dobro, ja sam ti htio samo ukazati na lošu praksu.
Razmisli malo kako velika će ti biti baza kad dodaš 100 slika, a kako velika kad staviš 100 linkova.
S tim se slazem u potpunosti.
Nego, ostavimo bazu podataka. Reci cemo da napravimo upload sliku, ona se premjesti u neki folder, i kako sad automacki tu sliku iz foldera prikazati u nekoj drugoj podstranici?
S tim se slazem u potpunosti.
Nego, ostavimo bazu podataka. Reci cemo da napravimo upload sliku, ona se premjesti u neki folder, i kako sad automacki tu sliku iz foldera prikazati u nekoj drugoj podstranici?
Premještaš slike preko nekog sučelja, ne ručno tako da ti se update-a baza podataka. Imaš već dostupnih javascript/php upload/image managera koji su dio text editora ili samostalni dostupnih na internetu da si skratiš muke.
Primjerice:
http://www.tinymce.com/enterprise/mcimagemanager.php
Ili:
Spremanje slika veće rezolucije direktno u bazu je loša ideja jer će baza vrlo brzo narasti i postati spora. Eventualno bi neke thumbnailove pospremio ali ništa veće od 2-3 kb po slici jer na 1000 slika...
A kao što bypass kaže, razlika između tehničke izvedbe jer minimalna. Obadvoje su jednostavni max. Što se tiče premještanja, kod promjene lokacije slike samo updateaj putanju do slike u bazi. Di je tu problem?
Pa nema problema, nego ne zelim to raditi rucno. Zelim to na foru cms-a. Kad upload napravim u cms-u da se to promjeni na glavnoj stranici sto se vidi na netu.
Pa nema problema, nego ne zelim to raditi rucno. Zelim to na foru cms-a. Kad upload napravim u cms-u da se to promjeni na glavnoj stranici sto se vidi na netu.
Meh, prilikom uploada u folder, kreiraj dvije različite slike, jednu spremi u tumbs_directory, drugu u full sized i promijeni veličinu, zatim izvrti query koji će pokupiti filename, title, i ostale željene podatke iz upload forme, i u bazu kako su ti rekli pospremi putanju, plus naučio na teži način, nikad ne piši u bazu apsolutnu putanju, nego koristi path kojeg napraviš u letu sa server_root, web_root, ili kako si već nazvao varijablama, i zatim spoji putanju u pospremi je u bazu, recimo na sličan način. Zatim dinamički popuni u frontendu putanje do thumbnailova, i svaku fotku pukni u svoj div. Recimo ovako:
$dbThumbFileName = str_replace('../', '', $path_to_thumbs_directory) . $filename;
$dbImageFileName = str_replace('../', '', $path_to_image_directory ). $filename;
Pa onda je bolje sliku ubacit u bazu. Recimo da trebam svaki dan uploudat neku drugu sliku. Lakse mi je napravit php skriptu da ubacuje sliku u bazu te da je brise kad je ne trebam.
pa sda su ti flyordie i bypass objasnili da se to u MySQL NE može, ali i da načelnonije dobra praksa zbog veličine baze i bandwitha prema bazi
alankish, mislim da autor teme nije još do toga došao. možda ipak treba naučiti na teži način
Imam problem s putanjama na serveru, na wampu mi sve radi a kad ga dignem na sever ne ide. Pa sam probao promjenit, greska mi je bila da mi je include zakljucan u php conf, problem je sto ne mogu pristupi tim konfiguracijama jer je acc free pa nema to u cpanelu. Kako sad dati putanje da funkcionira?
Imam problem s putanjama na serveru, na wampu mi sve radi a kad ga dignem na sever ne ide. Pa sam probao promjenit, greska mi je bila da mi je include zakljucan u php conf, problem je sto ne mogu pristupi tim konfiguracijama jer je acc free pa nema to u cpanelu. Kako sad dati putanje da funkcionira?
Daj link.
Da ne spominjemo SEO...
Sad bi trebalo bit bolje. http://johnnycms.netau.net/
Kasnije pogledam detaljno, na poslu sam Plus, okani se tog free hosta, jedanput mi je sve errore naprosto ignorirao, i nikako otkriti gdje je problem.
Da ne spominjemo SEO...
Što, sad si i ti počeo kao i Noor, poznati web master disleksičar? SEO, SEO, SEO
Sad bi trebalo bit bolje. http://johnnycms.netau.net/
404! Pukni fileove na pastebin.
http://pastebin.com/we1C7nn8 ev ti na pastebin-u.
http://pastebin.com/we1C7nn8 ev ti na pastebin-u.
Definiraj $ROOT varijablu, pošto trebaš apsolutnu putanju za includanje na ovaj način:
$ROOT = str_replace('\\', '/' ,dirname(__FILE__));
ovaj str_replace možeš slobodno zanemariti, to mi služi da mi putanja radi i na Win i na UNIX serverima, a kasnije dok radiš include radiš na sljedeći način:
include "$ROOT/inc/include.php";
http://pastebin.com/we1C7nn8 ev ti na pastebin-u.
Definiraj $ROOT varijablu, pošto trebaš apsolutnu putanju za includanje na ovaj način:
$ROOT = str_replace('\\', '/' ,dirname(__FILE__));
ovaj str_replace možeš slobodno zanemariti, to mi služi da mi putanja radi i na Win i na UNIX serverima, a kasnije dok radiš include radiš na sljedeći način:
include "$ROOT/inc/include.php";
Znaci meni je putanja uredu, samo ovaj dodatak?
S ovom skriptom nadjem root direktorij. echo $_SERVER['DOCUMENT_ROOT'];
Nako toga ga ubacim u link, odnosno u putanju, ali sve mi isto bude.
rijesio sam. Pomocu ove skirpte echo realpath(dirname(__FILE__)); saznao putanju, dodao i proradio.
Hvala na sugestijama.