Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 12 odgovora
  • 3.742 pregleda

Najnovija ↓

Prebacivanje smanjenih slika iz foldera u bazu 20.01.2009. u 13:44 · pre 216 meseci #1
Ovako: imam jedan folder u kome cuvam slike koje su formata 1200x1200. Ja hocu da sve slike iz tog foldera upisem u bazu ali smanjene, tj da budu formata 100x100.
Napravio sam skriptu za to ali negde gresim jer kada hocu da iscitam posle sliku iz baze i hocu da ih prikazem ne radi:
Kod moje skripte ide ovako:
Code:

<?php
//obilazak direktorijuma i smanjenje slika i upisivanje u bazu
if (is_dir($dir)) {
   if ($dh = opendir($dir)) {
       while (($file = readdir($dh)) !== false) {
       $pos_gif = strpos($file, "gif");
       $pos_jpg = strpos($file, "jpg");
       $pos_png = strpos($file, "png");
       if($pos_gif===false && $pos_jpg===false && $pos_png===false){
          echo $file;
       }else{
           $filename=$dir."/".$file;
            // Get new sizes
            list($width, $height) = getimagesize($filename);
            $newwidth = 100;
            $newheight = 100;
            
            // Load
            $thumb = imagecreatetruecolor($newwidth, $newheight);
            $source = imagecreatefromjpeg($filename);
            
            // Resize
            imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

            mysql_query("INSERT INTO tabela (id, slika) VALUES (NULL, '$thumb')");      
        }
       }
       closedir($dh);
   }
}

Ocigledno negde gresim.
Potpis
djLapac
Re: Prebacivanje smanjenih slika iz foldera u bazu 20.01.2009. u 16:22 · pre 216 meseci #3
da, to je tacno.
Lako bih ja da je to samo slika da ne treba da smanjujem
samo, fread(fopen(slika, rb), slika_size), ali problem je stomoram da je smanjim
e sada ja i znam jos jedan gluplji nacin a jeste da napravim smanjenu sliku bas kao fajl i kada je ovako unesem onda je izbrisem ali verujem da ima i neki jednostavniji nacin.
Potpis
djLapac
Re: Prebacivanje smanjenih slika iz foldera u bazu 20.01.2009. u 16:30 · pre 216 meseci #4
Sad mi pade na pamet, možeš da koristiš funkcije ob_start(); imagejpeg(); ob_get_clean(); da pokupiš slike?

Možda postoji i elegantnije rešenje, ali verujem da je ovo elegantnije od dampovanja svake slike u fajl i brisanja istog kasnije...
Potpis
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
Re: Prebacivanje smanjenih slika iz foldera u bazu 20.01.2009. u 18:06 · pre 216 meseci
izmenjeno 1 put, poslednji put nezki 22.01.2009. u 17:26
  1. nezki22.01.2009. u 17:26zapis iz teksta poruke
#5
Code:

<?php
//obilazak direktorijuma i smanjenje slika i upisivanje u bazu
if (is_dir($dir)) {
   if ($dh = opendir($dir)) {
       while (($file = readdir($dh)) !== false) {
       $pos_gif = strpos($file, "gif");
       $pos_jpg = strpos($file, "jpg");
       $pos_png = strpos($file, "png");
       if($pos_gif===false && $pos_jpg===false && $pos_png===false){
          echo $file;
       }else{
           $filename=$dir."/".$file;
            // Get new sizes
            list($width, $height) = getimagesize($filename);
            $newwidth = 100;
            $newheight = 100;
            
            // Load
            $thumb = imagecreatetruecolor($newwidth, $newheight);
            $source = imagecreatefromjpeg($filename);
            
            // Resize
            imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
            ob_start();
            imagejpg($thumb);
            $out=ob_get_clean();
            mysql_query("INSERT INTO tabela (id, slika) VALUES (NULL, '$out')");      
        }
       }
       closedir($dh);
   }
}


Probao sam ovako ali nece, nista mi ne upisuje u bazu.
Potpis
djLapac
Re: Prebacivanje smanjenih slika iz foldera u bazu 21.01.2009. u 10:53 · pre 216 meseci #6
Jel moze pitanje, zasto stavljas slike u bazu? To se tako ne radi, baza ce ti biti ogromna i mozes da imas posle problema sa hostingom. Zasto samo slike ne bi smanjio u neki thumbs folder, a u bazu upisao samo ime slike. U template posle samo upises putanju i zvadis ime slike iz baze

/images/thumbs/$ime_male_slike
Potpis
www.wwwindustry.net - www.xgcdb.com
Re: Prebacivanje smanjenih slika iz foldera u bazu 21.01.2009. u 12:56 · pre 216 meseci #7
Evo da ti objasnim:
Sajt za koji ovo radim za hosting koristi dedicated server kod Euneta. Tako da mu pitanje velicine baze i slobodnog prostora nije uospte bitan.
Inace sajt se bavi prodajom artikala putem interneta i glavni deo sajta jeste prikaz slika artikala koji se prodaju. Te slike su formata 4000x4000 i poprilicno su velike. One se cuvaju na serveru u tri formata mali thumb 100x100 srednji thumb 300x300 i veliki thumb 1200x1200.
Glavni problem tog sajta jeste sto se slike sporo ucitavaju, jer se na jednoj stranici tog sajta prikazuju i do 40 malih thumb slika.
Da bi se to poboljsalo jedan od menadzera tog sajta koji je inace i programer rekao je da ce se ubacivanjem slika u bazu to poboljsati. Iako sam ga ja ubedjivao oni to zele da urade. Tako da je moje da im ubacim te slike u bazu i to je to.
Potpis
djLapac
Re: Prebacivanje smanjenih slika iz foldera u bazu 22.01.2009. u 13:34 · pre 216 meseci #8
Citat:
jedan od menadzera tog sajta koji je inace i programer rekao je da ce se ubacivanjem slika u bazu to poboljsati

O boze koji noob. Taj da zna nesto ne bi ti savetovao ovakvu glupost. Jednostavno nema sanse da ucitavanje slike iz baze bude brze od uzitavanja slike iz foldera.
Vec imas neke teme na ovom forumu sto se tice ubacivanja slike u bazu, pogledaj.

Ja bih ti preporucio da prvo smanjis slike, a u drugoj skripti da ih ubasis u bazu.

ovaj kod bi trebalo da ti radi
Code:

if(!$data = addslashes(@fread(@fopen($dir.'/'.$file, "r"), @filesize($dir.'/'.$file))))
{    
die('Cannot create $data');
}

//onda ubacis $data u bazu , polje u bazi treb da ti bude BLOB. 

@fclose($dir.'/'.$file); 
 


Ako mozes, tj. smes postavi link ka toj prezentaciji da se uveim kako se to thumbovi sporo ucitavaju.

Potpis
www.wwwindustry.net - www.xgcdb.com
Re: Prebacivanje smanjenih slika iz foldera u bazu 22.01.2009. u 14:17 · pre 216 meseci #10
Bas me zanima zasto ob_start imagejpeg i ob_get_clean nije uradilo istu stvar. Trenutno nisam kod kuce ali (kad budem kod kuce) bas cu da pogledam da li isto vraca kao i citanje podataka iz fajla
Potpis
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
Re: Prebacivanje smanjenih slika iz foldera u bazu 22.01.2009. u 17:10 · pre 216 meseci #13
Citat:
mVeliki: Nemanjin predlog s imagejpeg() kroz ob_start() je sasvim Ok.
Već sam ga negde koristio i radi.


Kazem vam probao sam. Nista mi ne upisuje u bazu. Moguce da sam negde pogresio. Eto ostavio sam kod pa ako neko uoci gresku nek mi javi.
A sto se tice sajta ne znam mozda je glupo da ostavljam linkove ovde.
Razlog zbog cega taj menadzer zeli da prebaci slike u bazu je jer on ima neku aplikaciju koju koristi za pretragu slika i njihov prikaz. Baza mu je u MySql-u i stvarno mu mozda oko 1000 slika prikaze u roku od 3 sekunde. Ali to je ipak desktop aplikacija. e sada bi oni isto to zeleli d aimaju i na webu
Potpis
djLapac
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme