03. maj 2005 - 11:41
Der er
3 kommentarer og
1 løsning
Formindsk uploadet billede
Jeg har en side hvor nogle venner kan uploade nogle billeder. Problemet er, at billederne kommer direkte fra deres digitalkamera og de kan ikke finde ud af at formindske dem inden upload.
For at spare plads på serveren ville jeg høre om det er muligt at lave denne formindskelse (både filstørrelse og brede/højde på billedet) på selve serveren?
Der er adgang til GDlib på serveren. Jeg har set et script der formindsker højde/brede, men vil dette også gøre filstørrelsen mindre?
Slettet bruger
03. maj 2005 - 11:56
#1
Jeg har et script her fra en blog jeg engang lavede, som jeg har skåret ud i dagens anledning:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="resizeupload">
Image:
<input type="file" name="userfile">
<input type="submit" name="Submit" value="Submit">
</form>
<?php
// MySQL conn
include 'conn.php';
// Upload image and resize it
if($_POST["Submit"] == "Submit") {
upload_file();
$filesized = "/usr/local/psa/home/vhosts/pacroon.dk/httpdocs/content/cms/blogupload/".$filename."";
resize_jpg("" . $filesized . "",100,100);
echo "Image resized<br />";
}
// Resize function
function resize_jpg($img,$w,$h) {
// $thumb = imagecreatetruecolor ($w, $h);
$thumb = imagecreatetruecolor ($w, $h);
$image = ImageCreateFromJpeg($img);
$imagedata = getimagesize($img);
imagecopyresized ($thumb, $image, 0, 0, 0, 0, $w, $h, $imagedata[0], $imagedata[1]);
imagejpeg($thumb, $img);
}
// Upload function
function upload_file() {
global $filename, $userfile, $userfile_name, $userfile_size, $userfile_type, $archive_dir, $max_filesize, $WINDIR;
$archive_dir="/sti_til_dir_hvor_billederne_skal_lægges/";
$max_filesize = 1000000;
if(isset($WINDIR)) {
$userfile = str_replace("\\\\","\\", $userfile);
}
$filename = basename($userfile_name);
if($userfile_size <= 0) die ("$filename is empty");
if($userfile_size > $max_filesize) die ("$filename is too big! Only $max_filesize bytes allowed!");
if(!copy($userfile, "$archive_dir/$filename")) die ("Can't copy $userfile_name to $filename.");
if(isset($WINDIR) && !@unlink($userfile)) die ("Can't delete the file $userfile_name.");
echo "$filename has been successfully uploaded.<br />";
echo "Filesize: " . number_format($userfile_size) . "<br />";
echo "Filetype: $userfile_type<br />";
}
?>
Jeg har lige siddet og redigeret i det, i dette textarea, så jeg håber det er sket uden fejl :)
--
pacroon