Avatar billede Slettet bruger
21. marts 2007 - 19:15 Der er 6 kommentarer og
1 løsning

Resize billeder mens de blir uploadet

Hej!!!

Jeg har et billed upload script, som jeg også gerne vil have til at resize billederne til en bestemt størrelse.
Jeg vil gerne have scriptet til at scalere billedet ud fra en max højde hvis det kan lade sig gøre?

Mit upload script ser sådan ud:
<?php
$fhandle = fopen($_FILES['billed']['tmp_name'], "rb");
$billed = fread($fhandle, $_FILES['billed']['size']);

if($billed == false)
    echo "Read Error";

include("info.php");

$conn = mysql_connect($sqlhost, $sqluser, $sqlpass);
mysql_select_db($sqldb);

$query = "INSERT INTO $sqltabel (billed) VALUES ('" . mysql_real_escape_string($billed). "')";

if (mysql_query($query))
    echo "Billedet er gemt";
    else
    echo "Der skete en fejl";

header("location: upload.html");
?>

Jeg har søgt blandt de andre spørgsmål, men har ikke kunne finde noget jeg kan forstå :)

Håber at der er nogle som kan hjælpe mig
Avatar billede coderdk Praktikant
22. marts 2007 - 00:54 #1
Hvis det kun er JPG kan du bruge denne direkte: http://php.coder.dk/resizeimg
F.eks.:

<?php

    function resize( $filename, $newfilename, $maxw, $maxh )
    {
        $srcim = imagecreatefromjpeg( $filename );
        $ow = imagesx( $srcim );
        $oh = imagesy( $srcim );
        $wscale = $maxw / $ow;
        $hscale = $maxh / $oh;
        $scale = ( $hscale < $wscale ? $hscale : $wscale );
        $nw = round( $ow * $scale, 0 );
        $nh = round( $oh * $scale, 0 );
        $dstim = imagecreatetruecolor( $nw, $nh );
        imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
        imagejpeg( $dstim, $newfilename, 85 );
        imagedestroy( $dstim );
        imagedestroy( $srcim );
    }

$maxHoejde = 500;
resize( $_FILES['billed']['tmp_name'], $_FILES['billed']['tmp_name'], 1000000, $maxHoejde );

$fhandle = fopen($_FILES['billed']['tmp_name'], "rb");
$billed = fread($fhandle, $_FILES['billed']['size']);

if($billed == false)
    echo "Read Error";

include("info.php");

$conn = mysql_connect($sqlhost, $sqluser, $sqlpass);
mysql_select_db($sqldb);

$query = "INSERT INTO $sqltabel (billed) VALUES ('" . mysql_real_escape_string($billed). "')";

if (mysql_query($query))
    echo "Billedet er gemt";
    else
    echo "Der skete en fejl";

header("location: upload.html");
?>
Avatar billede Slettet bruger
22. marts 2007 - 12:38 #2
Tak coderdk, det virker sku, det var jo ikke så svært alligevel :)

Du smider bare et svar så du kan få point
Avatar billede coderdk Praktikant
22. marts 2007 - 13:09 #3
Ok :)
Avatar billede Slettet bruger
22. marts 2007 - 13:18 #4
Har faktisk lige et tillægs spørgsmål hvis du gider hjælpe mig med det?

Jeg vil også gerne have muligheden for at slette billederne igen, uden at skulle ind i databasen og gøre det.

Kan det lade sig gøre at echo billederne og så lave et "slette" link ved siden af billedet?
Avatar billede coderdk Praktikant
22. marts 2007 - 13:25 #5
$sqltabel må vel have en ID? Så er det vel bare at lave et slettescript og linke til det med den ID?
Avatar billede Slettet bruger
22. marts 2007 - 13:44 #6
Jeg havde også tænkt mig at slette ud fra id, men jeg kunne også godt tænke mig at billederne blev vist på siden, så man kan se hvilket billed man sletter
Avatar billede coderdk Praktikant
22. marts 2007 - 13:52 #7
Erh, så gør det? :) Du skriver vel bare både scriptet der viser billedet, og et link til scriptet der sletter billedet? I.e.:

<img src="showpic.php?id=123"><a href="#" onclick="if(confirm('Sikker?')){window.location.href='sletpic.php?id=123'}">Slet</a>
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