23. maj 2003 - 00:45
Der er
20 kommentarer og 1 løsning
Upload billeder samtidig med tilpas størrelse!
Er det muligt at når der uploades et billede så tjekker den om højden er imellem 100 og 400 pixels, bredden mellem 300 og 400 pixel og filtypen af .jpeg eller .jpg? Og foruden at hvis billedet er acceptabelt skal den uploade billedet til mappen billeder, samtidig med at der kopieres et billede i mappen thumbnails som skaleres ned til enten 100 pixel høj og passende bredde eller 100 pixel bred og passende højde afhængig af hvilken side der er størst på billedet! ??? Ved godt det er et stort spm, men det er ikke selve uploadingen jeg søger, men derimod at den tjekker billederne og at den kan minimere billeder til thumbnails!
Annonceindlæg fra Lector
Håber i fatter spm'et, eller spørg :-D
//først definerer vi filtyper vi vil have $sti = "/sti/til/dine/billeder"; $maxbredde = "400"; $nybredde = "400"; function okfiletype($filename) { $filetypes = array("jpg", "jpeg"); for($i=0;$i<count($filetypes);$i++) { if(strtolower($filetypes[$i]) == strtolower(substr($filename, -3)) || strtolower($filetypes[$i]) == strtolower(substr($filename, -4))) { return true; } else { return false; } } } // så uploader vi function upload_picture($file, $filename) { $filepath = "$sti"; $destinationname = $filepath.$filename; if ($file != "none") { if(move_uploaded_file($file, $destinationname)) { chmod($destinationname, 0644); return $filename; } else return false; } else return false; } // functionen der resizer billederne function resizeImage($src_file, $dest_file, $nybredde) { $imginfo = @getimagesize($src_file); if ($imginfo == NULL) return false; // height/width $srcWidth = $imginfo[0]; $srcHeight = $imginfo[1]; $ratioWidth = $srcWidth/$nybredde; $ratioHeight = 0; $destWidth = $nybredde; $destHeight = $srcHeight / $ratioWidth; $src_img = imagecreatefromjpeg($src_file); $dst_img = imagecreatetruecolor($destWidth,$destHeight); ImageCopyResampled($dst_img, $src_img, 0, 0, 0, 0, $destWidth,(int)$destHeight, $srcWidth, $srcHeight); imagejpeg($dst_img, $dest_file, 100); imagedestroy($src_img); imagedestroy($dst_img); return $dest_file; } // og så sætter vi det hele sammen if(!okfiletype($_FILES['userpicture']['name'])){ echo "Filtypen(". substr($_FILES['userpicture']['name'], -4) .") er ikke tilladt!<br> "; echo "<a href=\"java script:history.back()\">Back</a>"; exit; } $nr = 1; $pic = $_FILES['userpicture']['name']; while(file_exists("$sti"."$pic")){ $pic = rename_file($pic, $nr++); } $uploaded = upload_picture($_FILES['userpicture']['tmp_name'], $pic); if($uploaded == false){ echo "billedet blev ikke uploadet<br>"; } else { echo "$uploaded was successfully uploaded!<br>"; $filesize = filesize("$sti"."$uploaded"); $imagesize = getimagesize("$sti"."$uploaded"); $thb = resizeImage("$sti"."$uploaded", "$sti"."thumb_"."$uploaded", $sti, $metode); if($imagesize[0] > $maxbredde) $norm = resizeImage("$sti"."$uploaded", "$sti"."normal_"."$uploaded", $nybredde); } ovenstående er utestet.. men skriv hvis du får problemer.. løsningen kræver også GD-lib < 2.0
oops glemte lige min billede rename function.. som også skal bruges i tilfælde af et billede med det navn allerede existerer function rename_file($filename, $nr) { $pos = strrpos($filename, "."); $name = substr($filename, 0, $pos); $ext = substr($filename, $pos, strlen($filename)-$pos); if(ereg("[0-9]", substr($name, -1) )) $string = substr($name, 0, strlen($name)-1) . "$nr" . "$ext"; else $string = "$name" . "_$nr" . "$ext"; return $string; }
Det ser rigtig godt ud holybull! Lav lige et svar så du kan få nogen point efter jeg har kigget ordentlig på det :-)
Er der nogen der ved om GDlib er installeret hos Wannafind.dk? Og ellers hvordan jeg gør med en konto hos Wannafind.dk?
Og hvis det er installeret hos Wannafind.dk, om jeg så skal gøre noget for at benytte ud over holybull's kode? Om man skal connecte på nogen måde eller...?
som koden er der skal du ikke gørre ret meget ved den... men den kan jo self udvides med lidt SQL
Er der nogen der ved om Wannafind.dk har GDlib???
Det skulle de gerne understøtte, så holybull hvis du gider lave et svar!?
Jeg får hele tiden fejlen med at jeg dividerer med 0 i linje 61 og 64 $ratioWidth = $srcWidth/$nybredde; <------ linje 61 $ratioHeight = 0; $destWidth = $nybredde; $destHeight = $srcHeight / $ratioWidth; <----- linje 64
Hmmm, tror jeg har luret det: denne linje: $thb = resizeImage("$sti"."$uploaded", "$sti"."thumb_"."$uploaded", $sti, $metode); ska hedde: $thb = resizeImage("$sti"."$uploaded", "$sti"."thumb_"."$uploaded", $nybredde); Er der nogen der ved hvordan jeg sletter det oprindelige billede?
Laver du ikk lige et svar holybull??
01. juni 2003 - 13:30
#15
??? Laver du ikke lige et svar så jeg kan lukke spm'et?
01. juni 2003 - 13:44
#16
Vil foreslå dig at give ham en uges tid - hvis han/hun ikke lige er ved en computer i disse solskinsdage.
01. juni 2003 - 17:14
#17
Fair nok ;-) Så vil jeg selv smutte ud i det go'e vejr. Vender tilbage!!!
19. juli 2003 - 14:38
#18
Nu har du ikke glemt at lave et svar, vel holybull?
20. juli 2003 - 22:00
#19
Er du der? Eller har du helt glemt mig :-( ??? ;-)
23. juli 2003 - 00:34
#20
En uge til så lukker jeg spm'et... :-( Håber du svare!
30. juli 2003 - 23:10
#21
:-(, lukker spørgsmålet!
Vi tilbyder markedets bedste kurser inden for webudvikling