Joined: 24 Apr 2004 Posts: 890 Location: .....ni na nebu, ni na zemlji.....
Posted: 04.05.2004 09:44 Post subject: PHP i rad sa slikama
ok, dakle opisat ću poprilici kakav sustav imamo, koje su mane i zašto se te mane tako napravljenje, pa me zanima vaše mišljenje oko svega. koga zanima.
uglavnom, prooblem je u tome kaj je sve zamišljeno da se na webovima koriste thumbove + linkovi na veće slike, da bi to napravio, a da ne koristim <img> za resize šalju se po dvije slike, mala i velika, koje se vežu jedna na drugu u bazi....uglavnom kad se pošalje mala, ona dobije ID u bazi, onda se šalje velika, i ID se upisuje prilikom slanja....ne, nemam max_size, nego se provjere veličine radi nakon kaj se datoteka prebaci.
također slike se ubacuju u dokument prema nazivu, nego se samo kasnije u CMSu u polje upiše ID slike u bazi (prikaz stranica ima provjeru dal postoji mala i velika i dal uopće postoji datoteka na mjestu di baza kaže da izbjegnem one ružne kvadratiće).
e sad..to je malo komplicirano (više dosadno), pogotovo ako treba prebacit recimo 50,60 ili više slika (a dogodilo se i to). mene zanima jel neko ima kakvu _dobru_ ideju da se to malo dovede u red....
drugi problem je kaj je ovo poprilično stari kod, dakle znam da se neke stvari mogu drugačije, ali sam ljen razmišljat,a pošto radi i većina klijenata je zadovoljna kaj uopće mogu sami objavljivat slike, pa ga samo modificiram prema trenutnim zahtjevima, bez nekih stvarnih pomaka.....
fali hrpa provjera, ali tu se držim onoga da ak si neko sam hoće zajebat vlastite stranice, nek mu bude, pa valda neće slat .exe ak treba slike....da je moj web u pitanju i dajem nekom drugom pristup, onda bi to drugačije izgledalo, ali ovo je za "vlastitu" upotrebu
Code:
if ( ( $_POST['vrsta'] == "velika" ) && ( !$_POST['broj'] )) {
die ( "upišite broj male slike na koju se veže velika" );
}
if ( ( $_GET['akcija'] == "unos" ) && ( $_GET['ubaci'] ) ) {
$vrsta = $_POST['vrsta'];
$datoteka = $_FILES['datoteka']['name'];
if ( file_exists ( "slike/".$datoteka )) {
echo '<p class="css">Već postoji datoteka sa istim imenom.<br>Molim Vas da preimenujete datoteku prije ponovnog pokušaja';
} else {
$nema = true;
}
if ( $nema ) {
if ( is_uploaded_file ( $_FILES['datoteka']['tmp_name'] )) {
$poveznica = ftp_connect ( "_" );
$pristupi = ftp_login ( $poveznica, "_", "_" );
$upload = ftp_put ( $poveznica, 'public_html/slike/'.$datoteka, $_FILES['datoteka']['tmp_name'], FTP_BINARY );
$velicina = $_FILES['datoteka']['size'];
$slika = getimagesize ( "slike/".$datoteka );
$upit = "INSERT INTO `slike` ( `datoteka` ) VALUES ( '$datoteka' )";
$odgovori = mysql_query ( $upit, $db );
$upit = "SELECT id FROM slike WHERE datoteka='$datoteka'";
$odgovori = mysql_query ( $upit, $db );
$podaci = mysql_fetch_array ( $odgovori );
echo '<br><b>broj ove datoteke u bazi podataka je : <font size="4">',$podaci['id'],'</font><br>';
$prolaz = true;
}
}
if ( $vrsta == "velika" ){
if ( ( $slika[0] > $max_sirina ) || ( $slika[1] > $max_visina ) || ( $velicina > $max_tezina ) ) {
echo 'datoteka je prevelika';
} else {
$upit = "UPDATE `slike` SET `link`='$datoteka' WHERE id='".$_POST['broj']."' ";
mysql_query ( $upit, $db );
echo '<br><b>datoteka je uspješno poslana</b>';
}
}
}
ftp_quit ( $poveznica );
} else {
echo '<p class="css"><br><br><br><b>datoteka nije poslana.postoje problemi.<br><br>kontaktirajte administratora</b>';
}
}
ajd da čujem lokalne gurue kaj misle.....thx
EDIT::i ja sam vidim nekoliko prilično glupih stvari, ali mene više zanima komentar ako bi radili ispočetka, kako bi to trebalo, nego neke kozmetičke izmjene.
Joined: 24 Apr 2004 Posts: 890 Location: .....ni na nebu, ni na zemlji.....
Posted: 04.05.2004 10:09 Post subject:
ok, to bi bilo pametno. imaš kakav link?
EDIT:::: ne budi lijen (kao obično) našao sam jedan dobar tutorial sa zgodnom funkcijom za resize....e sad, pitanje u vezi ovoga tutoriala na koji ću linkat :
kaj ak slika nije 3/4 odnos?....jel ima neko ideju kak onda resize napravit da se slika ne razvuče, jer kolko vidim ovdi su date fiksne vrijednosti...
Joined: 25 Aug 2003 Posts: 1842 Location: Zagreb, Hrvatska
Posted: 04.05.2004 11:23 Post subject:
Uh, uh, uh.
Prvo, ne kuzim sto ce ti ftp funkcije za jednostavno kopiranje slika na drugu lokaciju. Postoje move_uploaded_file() ili samo plain & simple copy() iako preporucam move_uploaded_file().
Drugo, imagemagick preporucam kao i carr. www.imagemagick.org pa skini, pa se kreni igrat. Manual imagemagicka je velik, ali vrijedilo bi ga procitat, jer ces nakon toga znat sve sto ti treba.
Trece, ako bas ne zelis sam ucit sve od pocetka, skokni ovamo: http://pecl.php.net/package/imagick - to ti je PEAR package za hendlanje imagemagick-om, em se konstantno razvija, em ima u sebi dosta funkcionalnosti koje bi ti mogle trebat. Naravno, da bi ti ovaj PEAR package radio, moras imat i imagemagick na stroju.
Joined: 24 Apr 2004 Posts: 890 Location: .....ni na nebu, ni na zemlji.....
Posted: 04.05.2004 11:32 Post subject:
zytzagoo wrote:
Uh, uh, uh.
Prvo, ne kuzim sto ce ti ftp funkcije za jednostavno kopiranje slika na drugu lokaciju. Postoje move_uploaded_file() ili samo plain & simple copy() iako preporucam move_uploaded_file().
.
kao što sam reko, ovo je prastaro, preko godinu i pol (imaj u vidu da nisam išo na neki tečaj ili nešto) i radi.... budem probao s tim, FTP sam koristio jer sam morao mjenjat chmodove ako bi koritstio ono kaj je bilo u tutorialu iz kojeg sam to pokupio....
thnx za imagemagick..imam samo jedno pitanjem pošto vi znate, a nemam vremena prelistat cijelu dokumentaciju (trebam završt jedan web)... pretpostavljam da ga moram instalirat na server na kojim radim upload?.... kaže treba kompajlirat, znači .exe ide na server?...ak to ne mogu, kaj onda ne mogu ni koristit ili kaj?
sorry kaj gnjavim...ali stvarno bi htio to konačno posložit, ovo kaj sam pokazao je šugavo rješenje (istina radi,ali ne znači da je dobro)...
Joined: 25 Aug 2003 Posts: 1842 Location: Zagreb, Hrvatska
Posted: 04.05.2004 11:58 Post subject:
silence wrote:
kao što sam reko, ovo je prastaro, preko godinu i pol (imaj u vidu da nisam išo na neki tečaj ili nešto) i radi.... budem probao s tim, FTP sam koristio jer sam morao mjenjat chmodove ako bi koritstio ono kaj je bilo u tutorialu iz kojeg sam to pokupio....
Imas u php-u chmod() funkciju, ne treba ti ftp, biliv mi
Quote:
thnx za imagemagick..imam samo jedno pitanjem pošto vi znate, a nemam vremena prelistat cijelu dokumentaciju (trebam završt jedan web)... pretpostavljam da ga moram instalirat na server na kojim radim upload?.... kaže treba kompajlirat, znači .exe ide na server?...ak to ne mogu, kaj onda ne mogu ni koristit ili kaj?
Ako ne mozes na serveru imat imagemagick (pretpostavimo za pocetak da je server *nix, dakle nema .exe-a), onda mozes koristiti funkcije koje dolaze sa GD lib-om u samom php-u (naravno, opet pod uvjetom da ti je ekstenzija omogucena i "instalirana" na serveru, u vecini slucajeva je dostupna) - http://hr2.php.net/manual/en/ref.image.php - tu mozes procitat vise - GD nije toliko mocan kao imagemagick, ali ako nista drugo, moze ti biti starting point, i mozes napraviti sve ovo sto si naveo da zelis (resize...)
Ako ti je server pak na windows mashini, opet moras imat ili imagmagick PECL ekstenziju, ili imagemagick win binaries (convert.exe, mogrify.exe i ostale) ili GD library ekstenziju.
Onaj PEAR package (nisam probao, ali pretpostavljam) trebao bi raditi neovisno na kojem si serveru, samo je uvjet da provideas (pretpostavljam opet) path do imagemagick foldera, ili imagemagick extenzije (.dll-a onog) - ako bas hoces, mogu iscekirati, ali mislim da je bolje da se sam upustis u to, mozda ti postane jasnije
Ako na serveru nemas ni jedno (imagick) ni drugo (GD lib) - mjenjaj server - jer barem GD lib nije problem setupirat.
također preporučujem gdlib2 koji dolazi upakiran sa php 4.3. užasno moćan, radi sve što ti treba a od 7. mjeseca ge imati i pravu podršku za pisanje gifova.
_________________ ___(-o_o) .o( The tears of stangers are only water. )________
Joined: 24 Apr 2004 Posts: 890 Location: .....ni na nebu, ni na zemlji.....
Posted: 04.05.2004 17:50 Post subject:
thx...sad imam kaj delat.
napiso sam predugi post i obriso...uglavnom ako neko ima ideju da se to bilo kako skrati,a da radi s onim kaj _ja_ mogu poslat FTPom, bit ću vječno zahvalan....
mjenjaj server ..hehe.. nije do mene, nego do ljudi kojima se rade webovi....da barem mogu
.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum