Avatar billede Slettet bruger
26. januar 2005 - 20:55 Der er 3 kommentarer og
1 løsning

uploadscript med resizer virker ikke som det skal

Jeg har dette uploadscript:


                    //Fikser størrelsen
                    $sto = getimagesize($tmp_name);
                   
                    $width = $sto['0'];
                    $height = $sto['1'];
                   
                    if($sto['0'] > '300')
                        {
                        $width = '300';
                        $forhold = $sto['0']/$width;
                        $height = $sto['1']/$forhold;
                        }
                   
                    if($sto['1'] > '300')
                        {
                        $height = '300';
                        $forhold = $sto['1']/$height;
                        $width = $sto['0']/$forhold;
                        }
                   
                    $simg = imagecreatetruecolor($sto['0'], $sto['1']);
                    $img = imagecreatefromjpeg($tmp_name);
                    if(!img)
                        {
                        echo "Billedet findes ikke -> i resizeren". $tmp_name;
                        }
                    else
                        {
                        ImageCopyResampled($simg, $img, 0, 0, 0, 0, $width, $height, $sto['0'], $sto['1']);
                        }
                   
                   
                    ImageJpeg($img, $til_lille);

                    //Flyt filen til det dir og omdøb den til dens rigtige filnavn
                    move_uploaded_file($_FILES['upfile']['tmp_name'], $sti . $_GET['sid'] .".". $ext["extension"]);
                    $stien = $sti . $_GET['sid'] .".". $ext["extension"];
                    chmod($stien, 0755);
                    echo "Filen blev uploadet";


hvor meningen er, at hvis billedet er over 300 px højt eller over 300 px bredt, skal det resizes ned i den størrelse, men alligevel have samme forhold som før. Jeg ved intet om gdlib, og giver derfor 120 point til den / dem der kan hjælpe mig.. jeg er meget i tidsproblemer - derfor point er så høje!
Avatar billede Slettet bruger
26. januar 2005 - 21:09 #1
Her er hele scriptet, tror ikke man får så meget ud af at læse det lille stykke der:

<?
function start($id)
    {
    $k = '1';
    $sti = "./images/cykler/cykel_". $id .".jpg";
    if(!file_exists($sti))
        {
        $sti = "./images/cykler/cykel_". $id .".gif";
        }
    if(!file_exists($sti))
        {
        $udskrift = "
        <form action=\"?id=61&mode=uploaddone&sid=". $id ."\" method=\"POST\" enctype=\"multipart/form-data\"><br><br>
        <input type=\"file\" name=\"upfile\"><br><br>
        <input type=\"submit\" name=\"upload\" value=\"upload\">
        </form>
        ";
        $k = '0';
        }
    if($k == '1')
        {
        $info = @getimagesize($sti);
        if($info['1'] > "400")
            {
            $bredde = "width=\"400\"";
            }
        $udskrift = "<img src=\"".trim($sti)."\" border=\"0\" ". $bredde ."> <br><br>
        Tryk <a href=\"?id=61&mode=slet&sid=". $id ."\">her</a> for at slette billedet
        <br><br>
        Eller <a href=\"?id=50\">her</a> for at komme tilbage
        ";
        }
    return $udskrift;
    }
if($_GET['mode'] == "slet")
    {
    $id = $_GET['sid'];
    $sti = "./images/cykler/cykel_". $id .".gif";
    if(!file_exists($sti))
        {
        $sti = "./images/cykler/cykel_". $id .".jpg";
        }
    unlink($sti);
    header("location: ?id=61&sid=". $id ."");
    }
elseif($_GET['mode'] == "uploaddone")
    {
    $sti = "./images/cykler/cykel_";
    //Sætter filtyperne der er tilladt her i arrayet
    $allow_files = array("jpg");
    //Sætter max størrelse på filen
    //Husk at i php.ini er max størrelse sat til 2 mb som standard,
    //og kan give fejl hvis filer er over 2 mb
    $size = 5000000; //I bytes
    //Finder hvilket filtype der er tale om
    $ext = pathinfo($_FILES['upfile']['name']);
    //Tjekker om filtypen er tilladt
    if(in_array($ext["extension"], $allow_files))
        {
        //Tjekker om filen findes
        if(!file_exists($sti . $_GET['sid'] . $ext))
            {
            //Tjekker om filen er større end det tilladte
            if($_FILES['upfile']['size'] <= $size)
                {
                //Hvis der bliver lavet en fil
                if(is_uploaded_file($_FILES['upfile']['tmp_name']))
                    {
                   
                    //Fikser størrelsen
                    $navn = $_FILES['upfile']['tmp_name'];
                    $sto = getimagesize($navn);
                   
                    $width = $sto['0'];
                    $height = $sto['1'];
                   
                    if($sto['0'] > '300')
                        {
                        $width = '300';
                        $forhold = $sto['0']/$width;
                        $height = $sto['1']/$forhold;
                        }
                   
                    if($sto['1'] > '300')
                        {
                        $height = '300';
                        $forhold = $sto['1']/$height;
                        $width = $sto['0']/$forhold;
                        }
                   
                    $simg = imagecreatetruecolor($sto['0'], $sto['1']);
                    $img = imagecreatefromjpeg($navn);
                    if(!img)
                        {
                        echo "Billedet findes ikke -> i resizeren". $navn;
                        }
                    else
                        {
                        ImageCopyResampled($simg, $img, 0, 0, 0, 0, $width, $height, $sto['0'], $sto['1']);
                        }
                   
                   
                    ImageJpeg($img, $sti . $_GET['sid']);

                    //Flyt filen til det dir og omdøb den til dens rigtige filnavn
                    move_uploaded_file($_FILES['upfile']['tmp_name'], $sti . $_GET['sid'] .".". $ext["extension"]);
                    $stien = $sti . $_GET['sid'] .".". $ext["extension"];
                    chmod($stien, 0755);
                    echo "Filen blev uploadet";
                    }
                else
                    {
                    echo "ERROR";
                    }
                }
            else
                {
                echo "Filem er for stor";
                }
            }
        else
            {
            echo "Filen existere stopper her";
            }
        }
    else
        {
        echo "Filtypen er ikke tilladt, stop her";
        }
    echo "<br><br>tryk <a href=\"?id=61&sid=". $_GET['sid'] ."\">her</a> for at komme tilbage";
    }
else
    {
    echo start($_GET['sid']);;
    }
?>
Avatar billede detox Nybegynder
26. januar 2005 - 23:01 #2
Tror du skal ændre:

$simg = imagecreatetruecolor($sto['0'], $sto['1']);

til:

$simg = imagecreatetruecolor($width, $height);
Avatar billede Slettet bruger
27. januar 2005 - 16:02 #3
det virker desværre heller ikke, jeg har ændret det til dette:


                    //Fikser størrelsen
                    $navn = $_FILES['upfile']['tmp_name'];
                    $sto = getimagesize($navn);
                   
                    $width = $sto['0'];
                    $height = $sto['1'];
                   
                    if($sto['0'] > '300')
                        {
                        $width = '300';
                        $forhold = $sto['0']/$width;
                        $height = $sto['1']/$forhold;
                        }
                   
                    if($height > '300')
                        {
                        $height = '300';
                        $forhold = $width/$height;
                        $width = $height/$forhold;
                        }
                   
                    $simg = imagecreatetruecolor($width, $height);
                    $img = imagecreatefromjpeg($navn);
                    if(!img)
                        {
                        echo "Billedet findes ikke -> i resizeren". $navn;
                        }
                    else
                        {
                        ImageCopyResampled($simg, $img, 0, 0, 0, 0, $width, $height, $sto['0'], $sto['1']);
                        }
                   
                   
                    ImageJpeg($img, $sti . $_GET['sid']);

                    //Flyt filen til det dir og omdøb den til dens rigtige filnavn
                    move_uploaded_file($_FILES['upfile']['tmp_name'], $sti . $_GET['sid'] .".". $ext["extension"]);
                    $stien = $sti . $_GET['sid'] .".". $ext["extension"];
                    chmod($stien, 0755);
                    echo "Filen blev uploadet";
Avatar billede Slettet bruger
07. februar 2005 - 21:46 #4
ok lukker, får ikke noget ud af det her :D
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