Avatar billede fatass Nybegynder
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?
Avatar billede 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
Avatar billede Slettet bruger
03. maj 2005 - 11:58 #2
$filesized = "/usr/local/psa/home/vhosts/pacroon.dk/httpdocs/content/cms/blogupload/".$filename."";
.. skal så ændres til:
$filesized = "/sti_til_dir_hvor_billederne_skal_lægges/".$filename."";

- Det manglede jeg lige...
Avatar billede fatass Nybegynder
03. maj 2005 - 18:28 #3
Takker. Det var lige det jeg manglede. Skulle dog lige rette lidt til for at få det til at køre uden register_globals, men det var til at finde ud af
Avatar billede Slettet bruger
04. maj 2005 - 00:03 #4
Skønt - held og lykke med det :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester