DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Sva početnička pitanja (http://www.devprotalk.com/forumdisplay.php?f=40)
-   -   [REŠENO] Multi upload i resize slika? (http://www.devprotalk.com/showthread.php?t=5656)

Mjaukalo 24. 06. 2008. 13:58

[REŠENO] Multi upload i resize slika?
 
Zanima me kako mogu da odradim upload vise slika (konkretno 3) i njihov resize jedan na odredjenu dimenziju i jos jedan na drugu dimenziju, i sve to kroz jednu skriptu. Ja sam gledao i nasao neke skripte za upload jedne po jedne slike, ali nisam za vise odjednom, a to mi treba, i treba mi da dobijem nakon toga i njihove lokacije na serveru gde su uploadovane, znaci lokaciju svih 6 slika (3 vece i 3 manje) kako bih mogao da upisem posle pomocu druge skripte u bazu informacije o njihovoj lokaciji.

Ima li neko ovako nesto vec?
:please:

nixa 24. 06. 2008. 14:02

http://code.google.com/p/swfupload/

Mjaukalo 24. 06. 2008. 14:07

Ja sam temu postovao u deo za PHP. Kakve veze ima ovo sto si odgovorio sa tim?

"SWFUpload is a combination of JavaScript and Flash that provides advanced browser upload control."

nixa 24. 06. 2008. 14:11

pa zato što ti swf upload dozvoljava upload više slika u isto vreme ...

šta ćeš ti sa tim slikama kasnije da radiš je na tebi ...

Mjaukalo 24. 06. 2008. 14:32

Pa meni ne treba takav pristup, meni treba to php da odradi... :1088: :1064:

ivanhoe 24. 06. 2008. 14:49

pa mora php da ti odradi obrni okreni, ovo Nixino ti samo stedi posao...

Upload vise fajlova se radi potpuno isto kao i upload jednog fajla, samo ponovis postupak za svaki uploadovani fajl... zgodno je da file inpute nazoves kao niz, tipa
<input type="file" name="fajlovi[]" /> jer onda mozes da ih handlujes u petlji...

za resize slike koristis imagecopyresampled(), vidi php manual za primer

Mjaukalo 24. 06. 2008. 16:27

Evo skripte koje koristim za upload jedne slike
PHP kôd:

<?php
$idir 
"images/";   // Path To Images Directory
$tdir "images/thumbs/";   // Path To Thumbnails Directory
$twidth "166";   // Maximum Width For Thumbnail Images
$theight "122";   // Maximum Height For Thumbnail Images

if (!isset($_GET['subpage'])) {   // Image Upload Form Below   ?>
<div id="apDiv14">
  <form method="post" action="<?php echo $_SERVER['PHP_SELF']?>?subpage=upload" enctype="multipart/form-data">
   File:<br />
   <input type="file" name="imagefile" class="form">
   <br />
   <br />
  <input name="submit" type="submit" value="postavi sliku" class="form"> <input type="reset" value="resetuj" class="form">
  </form></div>
<?php } else  if (isset($_GET['subpage']) && $_GET['subpage'] == 'upload') {   // Uploading/Resizing Script
  
$url $_FILES['imagefile']['name'];   // Set $url To Equal The Filename For Later Use
  
if ($_FILES['imagefile']['type'] == "image/jpg" || $_FILES['imagefile']['type'] == "image/jpeg" || $_FILES['imagefile']['type'] == "image/pjpeg") {
    
$file_ext strrchr($_FILES['imagefile']['name'], '.');   // Get The File Extention In The Format Of , For Instance, .jpg, .gif or .php
    
$copy copy($_FILES['imagefile']['tmp_name'], "$idir$_FILES['imagefile']['name']);   // Move Image From Temporary Location To Permanent Location
    
if ($copy) {   // If The Script Was Able To Copy The Image To It's Permanent Location
      
print 'Slika je uspesno postavljena.<br />';   // Was Able To Successfully Upload Image
      
$simg imagecreatefromjpeg("$idir$url);   // Make A New Temporary Image To Create The Thumbanil From
      
$currwidth imagesx($simg);   // Current Image Width
      
$currheight imagesy($simg);   // Current Image Height
      
if ($currheight $currwidth) {   // If Height Is Greater Than Width
         
$zoom $twidth $currheight;   // Length Ratio For Width
         
$newheight $theight;   // Height Is Equal To Max Height
         
$newwidth $currwidth $zoom;   // Creates The New Width
      
} else {    // Otherwise, Assume Width Is Greater Than Height (Will Produce Same Result If Width Is Equal To Height)
        
$zoom $twidth $currwidth;   // Length Ratio For Height
        
$newwidth $twidth;   // Width Is Equal To Max Width
        
$newheight $currheight $zoom;   // Creates The New Height
      
}
      
$dimg imagecreate($newwidth$newheight);   // Make New Image For Thumbnail
      
imagetruecolortopalette($simgfalse256);   // Create New Color Pallete
      
$palsize ImageColorsTotal($simg);
      for (
$i 0$i $palsize$i++) {   // Counting Colors In The Image
       
$colors ImageColorsForIndex($simg$i);   // Number Of Colors Used
       
ImageColorAllocate($dimg$colors['red'], $colors['green'], $colors['blue']);   // Tell The Server What Colors This Image Will Use
      
}
      
imagecopyresized($dimg$simg0000$newwidth$newheight$currwidth$currheight);   // Copy Resized Image To The New Image (So We Can Save It)
      
imagejpeg($dimg"$tdir$url);   // Saving The Image
      
imagedestroy($simg);   // Destroying The Temporary Image
      
imagedestroy($dimg);   // Destroying The Other Temporary Image
      
print 'Thumbnail je napravljen uspesno.'// Resize successful
      
print "<br />images/thumbs/$url";
      print 
"<br />images/$url";


    } else {
      print 
'<font color="#FF0000">ERROR: Unable to upload image.</font>';   // Error Message If Upload Failed
    
}
  } else {
    print 
'<font color="#FF0000">Greska: Pogresna vrsta fajla za upload (mora da bude .jpg ili .jpeg. vas tip fajla je: ';   // Error Message If Filetype Is Wrong
    
print $file_ext;   // Show The Invalid File's Extention
    
print '.</font>';
  }
?>

E ja zelim ovako nesto da imam u browseru:

I da uploadujem izabrane slike na server, i tek ako su svi fajlovi validni (ako su slike a ne recimo php skripte ili slicno) da skripta prosledi njihove lokacije drugoj skripti tipa:
PHP kôd:

http://sajt/neka_skripta_gde_se_prosledjuje?prvavelika=OvdeAdresaPrveVelike&prvaMala=AdresaMaleSliceceZaPrvu&drugavelika=AdresaDrugeVelike... 

itd za sve 6 slike (posto imamo 3 male i tri vece)...
Nadam se da ste me skontali ;)

MorenoArdohain 24. 06. 2008. 17:35

Ivanhoe ti je lepo rekao sta da uradis.

Ilija Studen 24. 06. 2008. 18:41

Ne, on hoće da mu to neko uradi na osnovu skripte koju je okačio.

Koliko ono beše satnica PHP programera? 15e? Više?

Mjaukalo 24. 06. 2008. 18:44

Ok je, ne mora niko da odgovara nista vise, ok je.


Vreme je GMT +2. Trenutno vreme je 10:44.

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.