Jeg har en side hvor jeg skal resize nogle billeder. Her bruger jeg dette script:
//make sure this directory is writable! $path_thumbs = "files/thumb"; //the new width of the resized image, in pixels. $img_thumb_width = 200; // $extlimit = "no"; //Limit allowed extensions? (no for all extensions allowed) //List of allowed extensions if extlimit = yes $limitedext = array(".gif",".jpg",".png",".jpeg",".bmp"); //the image -> variables $image = time().substr($_FILES['vImage']['name'],strrpos($_FILES['vImage']['name'],'.')); $file_type = $_FILES['vImage']['type']; $file_name = $_FILES['vImage']['name']; $file_size = $_FILES['vImage']['size']; $file_tmp = $_FILES['vImage']['tmp_name']; //check if you have selected a file. if(!is_uploaded_file($file_tmp)){ echo "Error: Please select a file to upload!. <br>--<a href=\"$_SERVER[PHP_SELF]\">back</a>"; exit(); //exit the script and don't process the rest of it! } //check the file's extension $ext = strrchr($file_name,'.'); $ext = strtolower($ext);
//so, whats the file's extension? $getExt = explode ('.', $file_name); $file_ext = $getExt[count($getExt)-1]; //create a random file name $rand_name = md5(time()); $rand_name= rand(0,999999999); //the new width variable $ThumbWidth = $img_thumb_width; $ThumbWidth = 100; // ///////////////////////////////// // CREATE THE THUMBNAIL // ////////////////////////////////
//keep image type if($file_size){ if($file_type == "image/pjpeg" || $file_type == "image/jpeg"){ $new_img = imagecreatefromjpeg($file_tmp); }elseif($file_type == "image/x-png" || $file_type == "image/png"){ $new_img = imagecreatefrompng($file_tmp); }elseif($file_type == "image/gif"){ $new_img = imagecreatefromgif($file_tmp); } //list the width and height and keep the height ratio. list($width, $height) = getimagesize($file_tmp); //calculate the image ratio $imgratio=$width/$height; if ($imgratio>1){ $newwidth = $ThumbWidth; $newheight = $ThumbWidth/$imgratio; }else{ $newheight = $ThumbWidth; $newwidth = $ThumbWidth*$imgratio; } //function for resize image. if (function_exists(imagecreatetruecolor)){ $resized_img = imagecreatetruecolor($newwidth,$newheight); }else{ die("Error: Please make sure you have GD library ver 2+"); } //the resizing is going on here! imagecopyresized($resized_img, $new_img, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); //finally, save the image ImageJpeg ($resized_img,"files/thumb/$image"); ImageDestroy ($resized_img); ImageDestroy ($new_img);
Dette er noget jeg har fundet fra diverse sider som jeg har prøvet mig frem med og det virker også nogenlunde... Men når jeg uploader billeder over 1mb går det helt galt og der bliver ikke vist noget på siden overhovedet.
Det er også fordi du bruger en vildt forældet teknologi - GD2 er noget forældet i forhold til imagemagick; samtidig giver imagemagick bedre resultater.
Du kan også tilføje denne linie til din .htaccess for at komme nemt uden om den begrænsning:
Tja, sådan er det jo med IT... Det du ved idag, var brugbart igår. Det du vidste igår, var brugbart for en måned siden. Det du vidste for en måned siden, er omtrent lige så brugbar information som teknikker til hvordan du kan slå dinosaurer ihjel med en trækølle...
Ved godt at det er gammelt men vil være godt at kunne få det til at lykkes, det behøves ikke at være så avanceret i denne omgang..
Nu har jeg fundet ud af hvad jeg har lov til som upload print "<br/>Max upload size ".ini_get('upload_max_filesize'); print "<br/>Max post upload size ".ini_get('post_max_size');
Og dette fik jeg:
Max upload size 12M Max post upload size 12M
Så problemet kan jo ikke være at der ikke er nok "plads" at uploade på.
Denne her metode gemmer ikke den originale størrelse, den gemmer oven i den gamle.
Der er muligvis nogle bugs, for jeg har ikke testet det og jeg har bare brugt dine udregningsmetoder til udregning af ratioen, men du kan jo lige skrive, hvis det ikke virker.
Du skal have ImageMagick installeret på serveret for det virker, naturligvis, men hvis du har one, gigahost, web10 eller sådan et, så er det installeret.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.