DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Sva početnička pitanja (http://www.devprotalk.com/forumdisplay.php?f=40)
-   -   Smanjenje velicine bajtova slike (http://www.devprotalk.com/showthread.php?t=9090)

webarto 03. 09. 2010. 15:22

^
http://stackoverflow.com/questions/4...ze-client-side

Peca 03. 09. 2010. 15:37

Citat:

Originalno napisao webarto (Napišite 88690)

thank you - ovo sam trazio prosle godine danima :) [i na kraju odustao jer nisam nasao nista kasvetno].

btw, evo mu je najnovija verzija - http://adylevy.com/demo/imgUploadv25/
sta vise od ovoga pozeleti? :)

webarto 03. 09. 2010. 15:59

:) http://www.izradafotografija.com/ ovdje je bio servis za izradu fotografija ali je bilo sporo jer slike su bile 3mb a potrebno je oko 500kb da bi se izradila fotografija standardnog formata. Tako da je resize before upload idealno riješenje.

On topic, skini mybb forum, imaš file functions_image.php, on recimo radi resize da zadovoljava uslov recimo da je slika ne smije biti veća od 100kb.

nixa 03. 09. 2010. 16:10

@webarto taj uslov mozes da sredis i preko klijentske strane ( swf upload recimo )

webarto 03. 09. 2010. 16:13

Ma da ali vidim da pita za PHP ako sam dobro razumio pitanje.

Peca 03. 09. 2010. 16:26

ako meni kazes za mybb - nema potrebe, imam ja odavno svoju biblioteku sa GD funkcijama... samo mi je trebao multiple-upload client-side.

webarto 03. 09. 2010. 16:32

Ne, ne već gospodinu iz prvog posta :)

trazimcuruzabrak 04. 09. 2010. 00:07

Napravio sam skriptu koja ubacuje sliku i optimizuje je, medjutim osecam da ipak radi suvisne poslove. Zapravo sam pojedine delove koda samo iskopirao bez da shvatam koja funkcija sta radi. Trudio sam se da shvatim pojedine funkcije ali ne uspevam. Neznam engleski a na nasem jeziku ne moze da se nadju objasnjenja. Da li bi neko mogo da vidi kod i da eventualno da predlog za njegovu optimizaciju u smislu da skripta ne radi duplo poslove ili poslove u medju koracima koji nisu potrebni? U primcipu mislim da od dela "odavde" koji sam ubelezio u kodu narocito bi trebalo da se optimizuje. Naravno ovo je samo deo citavog projekta jer postoje jos php fajlovi za prikaz, forma za unos slika itd a ovaj php fajl sluzi samo za obradu unete slike.

PHP kôd:

<?
if ($_POST["SBgumb"]="Posalji"){

  
$slucaj=$_GET["u"];

  if (
$slucaj<or $slucaj>99) {$poruk="Nerazumljiv zahtev. Ne zaboravite da samo 99 slika je moguce uneti!";header ("location: korisnik.php?k=$poruk"); exit;}
  if (
preg_match("/\D/"$slucaj)) {$poruk="Nerazumljiv zahtev. Ne zaboravite da samo 99 slika je moguce uneti!";header ("location: korisnik.php?k=$poruk"); exit;}

  include 
'veza.php';

  if (
$_FILES ['slika']['error'] > 0){
     switch (
$_FILES ['slika']['error']){
        case 
1$poruk='Slika je prevelika pokusajte ponovo';header ("location: korisnik.php?k=$poruk"); break;
        case 
2$poruk='Slika je prevelika pokusajte ponovo';header ("location: korisnik.php?k=$poruk"); break;
        case 
3$poruk='Slika nije potpuno ucitana, pokusajte ponovo';header ("location: korisnik.php?k=$poruk"); break;
        case 
4$poruk='Slika nije ucitana, pokusajte ponovo';header ("location: korisnik.php?k=$poruk"); break;
        case 
6$poruk='Serverska greska, pokusajte ponovo';header ("location: korisnik.php?k=$poruk"); break;
        case 
7$poruk='Slika nije ucitana, pokusajte ponovo';header ("location: korisnik.php?k=$poruk"); break;
        case 
8$poruk='Slika nije ucitana, pokusajte ponovo';header ("location: korisnik.php?k=$poruk"); break;
      }
      exit;
  }
  if (
$_FILES ['slika']['size'] > 1048576) { $poruk='Slika je prevelika pokusajte ponovo';header ("location: korisnik.php?k=$poruk"); exit;}
  if (
$_FILES ['slika']['type']=='image/jpeg'){ $a="ok"$b="jpg";}
  if (
$_FILES ['slika']['type']=='image/png'){ $a="ok"$b="png";}
  if (
$a!="ok"){ $poruk='Problem: slika nije u okviru ponudjenih formata jpg i png, pokusajte ponovo';header ("location: korisnik.php?k=$poruk"); exit;}


// ******  ODAVDE  ******


  
$upfile "slike/".$_FILES['slika']['name'];

  if ( 
is_uploaded_file ($_FILES ['slika']['tmp_name'])){
     if ( !
move_uploaded_file ($_FILES ['slika']['tmp_name'], $upfile)){
        
$poruk='Problem: Nije premestena slika na sajt'header ("location: korisnik.php?k=$poruk"); exit;
     }
  }else{
     
$poruk='Problem: Nismo ucitali sliku pod zadatim nazivom'header ("location: korisnik.php?k=$poruk"); exit;
  }

  
$opis=$_POST['opis'];
  
$opis=nl2br($opis);
  
$opis=strip_tags($opis);
  
$opis=addslashes($opis);

  if(
$slucaj==0){
      
$sql "INSERT INTO slike (naziv, opis) VALUES ('$upfile', '$opis')";
      if (!
mysql_query ($sql)) { $poruk="Nastala je greška pri unosu naziva slike u bazu podataka"header ("location: korisnik.php?k=$poruk");exit;}
      
header ("location: korisnik.php");
  }else{
      
$q mysql_query("SELECT naziv FROM slike WHERE slikaID='".$slucaj."'");
      while(
$row mysql_fetch_array($q)){
         
$naaziv=$row['naziv'];
      }
      
unlink($naaziv);

      @
mysql_query("UPDATE slike SET naziv ='".$upfile."', opis='".$opis."' WHERE slikaID =$slucaj");
      
header ("location: korisnik.php");
  }

}else{
  
$poruk="Nerazumljiv zahtev. Ne zaboravite da samo 99 slika je moguce uneti!"header ("location: korisnik.php?k=$poruk"); exit;
}

    
$src_img=@imagecreatefromjpeg($upfile);
    
$w=imageSX($src_img);
    
$h=imageSY($src_img);

    
$dst_img=ImageCreateTrueColor($w,$h);
    
imagecopy($dst_img,$src_img,0,0,0,0,$w,$h); 
    
    
imagejpeg($dst_img$upfile30);

    
imagedestroy($dst_img); 
    
imagedestroy($src_img);
?>


McKracken 04. 09. 2010. 00:49

Tesko da ovde mozes da optimizujes bilo sta, osim da uredis kod da bude bar elementarno citljiv.

Citat:

Nerazumljiv zahtev. Ne zaboravite da samo 99 slika je moguce uneti!
Yes, master Yoda!

Sorry, ali nisam mogao da odolim!

trazimcuruzabrak 04. 09. 2010. 00:59

Mislis da nesto u IF uslovu nije u redu?? Promenjljiva $slucaj je broj izmedju 0 i 99 zakljucno sa tim brojevima. Znaci ako se prosledi bilo sta drugo ukljucujuci i bilo koji drugi znak ili slovo izlazi se iz skripte. Koliko vidim iz uslova (a i posle testiranja) sve je ok. Sta tebe buni, ne razumem?


Vreme je GMT +2. Trenutno vreme je 01:32.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.