Forum FAQForum FAQSearchSearch MemberlistMemberlist Forum ignore listForum ignore list RegisterRegister ProfileProfile Log in to check your private messagesLog in to check your private messages Log inLog in
PHP i rad sa slikama

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    mi3dot.org Forum Index -> Server-side
View previous topic :: View next topic  
Author Message
silence



Joined: 24 Apr 2004
Posts: 890
Location: .....ni na nebu, ni na zemlji.....

PostPosted: 04.05.2004 08:44    Post subject: PHP i rad sa slikama Add user to your forum ignore list Reply with quote

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 Wink


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 );

            //ovdi treba ubacit switch
            switch ( $vrsta ) {
                case "velika":
                $max_sirina = 1024;
                $max_visina = 768;
                $max_tezina = 220000;
                break;
                case "mala":
                $max_sirina = 120;
                $max_visina = 90;
                $max_tezina = 32000;
                break;
            }
            if ( $vrsta == "mala" ){
            if ( ( $slika[0] > $max_sirina ) || ( $slika[1] > $max_visina ) || ( $velicina > $max_tezina ) ) {
                 echo '<p class="css"><b>veličina : ',$velicina,' kB<br>širina : ',$slika[0],'<br>visina : ',$slika[1];
                 echo '<p class="css"><br><b>datoteka je prevelika.pokušajte ponovno</b>';
                if ( ftp_delete ( $poveznica, 'public_html/slike/'.$datoteka ) ){
                    echo '<br></b>brisanje uspješno';
                } else {
                    echo 'problem!!!';
                }
                $bris = 1;
            } else {
                echo '<p class="css"><br><br><br><b>datoteka uspješno poslana</b>';
            }
            if ( !$bris ){

                $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 Very Happy

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.
Back to top
View user's profile Send private message Visit poster's website
carr



Joined: 13 Nov 2003
Posts: 1397
Location: Karlovac

PostPosted: 04.05.2004 08:52    Post subject: Add user to your forum ignore list Reply with quote

nemoj raditi uploadat sa slikom i thumbom, nego ih fizicki resizaj na serveru u novi file.
mislim da na php-u to mozes preko onog imagemagicka

dobijes na jednostavnosti i manje slika za uploadat.

_________________
Bolje biti malo lud, nego malo pametan.
Back to top
View user's profile Send private message Visit poster's website
silence



Joined: 24 Apr 2004
Posts: 890
Location: .....ni na nebu, ni na zemlji.....

PostPosted: 04.05.2004 09:09    Post subject: Add user to your forum ignore list Reply with quote

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...

http://tutorials.dotgeek.org/tutorial.php?action=view&id=74
Back to top
View user's profile Send private message Visit poster's website
zytzagoo
mi3.crew


Joined: 25 Aug 2003
Posts: 1842
Location: Zagreb, Hrvatska

PostPosted: 04.05.2004 10:23    Post subject: Add user to your forum ignore list Reply with quote

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.

Ako hoces, imas ovdje: http://kromann.info/pecl.php za skinut PECL win binary (.dll) od imagick-a.

_________________
[+]I[+]am[+]my[+]own[+]religion[+]
Back to top
View user's profile Send private message Visit poster's website Twitter profile
silence



Joined: 24 Apr 2004
Posts: 890
Location: .....ni na nebu, ni na zemlji.....

PostPosted: 04.05.2004 10:32    Post subject: Add user to your forum ignore list Reply with quote

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)...


thx puno za sve do sada Smile
Back to top
View user's profile Send private message Visit poster's website
zytzagoo
mi3.crew


Joined: 25 Aug 2003
Posts: 1842
Location: Zagreb, Hrvatska

PostPosted: 04.05.2004 10:58    Post subject: Add user to your forum ignore list Reply with quote

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 Smile

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 Smile

Ako na serveru nemas ni jedno (imagick) ni drugo (GD lib) - mjenjaj server - jer barem GD lib nije problem setupirat.

Quote:
thx puno za sve do sada Smile

np Smile

_________________
[+]I[+]am[+]my[+]own[+]religion[+]
Back to top
View user's profile Send private message Visit poster's website Twitter profile
buzztard



Joined: 08 Sep 2003
Posts: 84

PostPosted: 04.05.2004 11:23    Post subject: Add user to your forum ignore list Reply with quote

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. )________
Back to top
View user's profile Send private message Visit poster's website
silence



Joined: 24 Apr 2004
Posts: 890
Location: .....ni na nebu, ni na zemlji.....

PostPosted: 04.05.2004 16:50    Post subject: Add user to your forum ignore list Reply with quote

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 Smile
.
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    mi3dot.org Forum Index -> Server-side All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
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


Powered by phpBB © 2001, 2005 phpBB Group