Avatar billede kgp43 Nybegynder
20. marts 2004 - 19:45 Der er 7 kommentarer og
1 løsning

Upload og resize, modificering af script

Hejsa,

Jeg har dette script, der laver størrelsen af et billede om og uploader det. Det undetstøtter kun jpeg og png, jeg har så ændret det lige så den også godtager gif billeder. Problemet er bare at den ikke reseizer billedet. Nogle der kan se fejlen?


//Upload function START
$uploaddir = "/home/mytackle/public_html/pics/";
$maxsize = 150; // maximum bredde
if (isset($_POST['submit']) && $_POST['submit'] == "upfile") {
    $source = $_FILES['upfile']['tmp_name'];
    if (is_uploaded_file($source)) {
        if (tjektype($source)) {
            $dest = $uploaddir . $_FILES['upfile']['name'];
            $dest = tjekfil($dest);
            if (move_uploaded_file($source, $dest)) {
                thumb($dest, $maxsize);
                echo "Picture Uploaded";
                echo "<p><img src='".$dest."' alt='thumbnail' /></p>";
            } else {
                echo "Picture not uploaded";
            }
        } else {
            echo "Filetype not allowed. Contact the webmaster if you have a picture of the model";
        }
    } else {
        echo "No picture selected";
    }
}

function Thumb($sourcefile, $size) {
    if (preg_match("/png$/i", $sourcefile)) {
        $im = imageCreateFromPNG($sourcefile);
    } elseif (preg_match("/jpe?g$/i", $sourcefile)) {
        $im = imageCreateFromJPEG($sourcefile);
    } elseif (preg_match("/gif$/i", $sourcefile)) {
        $im = imageCreateFromGIF($sourcefile);
    }
    $source_x = imagesx($im);
    $source_y = imagesy($im);
    $delta = $size/$source_x;
    $dest_x = round($source_x*$delta);
    $dest_y = round($source_y*$delta);
    $target_id = imagecreatetruecolor($dest_x, $dest_y);   
    imagecopyresampled($target_id, $im,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y);
    if (preg_match("/png$/i", $sourcefile)) {
        imagePNG($target_id, $sourcefile);
    } elseif (preg_match("/jpe?g$/i", $sourcefile)) {
        imageJPEG($target_id, $sourcefile);
    } elseif (preg_match("/gif?g$/i", $sourcefile)) {
        imageGIF($target_id, $sourcefile);
    }
}

function tjektype($source) {
    if(preg_match("/[png|gif|jpe?g]$/i", $source)) {
        return true;
    }else{
        return false;
    }
}

function tjekfil($filnavn) {
    $i = 0;
    $arr = explode(".", $filnavn);
    $ext = array_pop($arr);
    $navn = implode(".", $arr);
    while (is_file($filnavn)) {
        $i++;
        $filnavn = $navn . "." . sprintf("%06u", $i) . "." . $ext;
    }
    return $filnavn;
}
//UPLOAD function END



//UPLOAD START
$uploaddir = $_SERVER["DOCUMENT_ROOT"] ."/pics/";
$maxsize = 150; //pixels (width)

if (isset($_FILES["upfile"])) {
    $source = $_FILES['upfile']['tmp_name'];
        if (is_uploaded_file($source)) {
            if (tjektype($_FILES['upfile']['type'])) {
            $dest = $uploaddir . $_FILES['upfile']['name'];
            $dest = tjekfil($dest);
                if (move_uploaded_file($source, $dest)) {
                thumb($dest,$maxsize);
                echo '<font color=green>Picture uploaded </font>';
                } else {
                echo '<font color=red>Picture not uploaded. Contact the webmaster if you want to add a picture</font>';
                }
            } else {
            echo '<font color=red>This type of file can not be uploaded</font>';
            }
        } else {
        echo '<font color=red>No picture selected</font>';
        }
}
$pic_name=basename($dest);
//Upload script END
Avatar billede thedeathart Nybegynder
20. marts 2004 - 19:48 #1
du har kun angivet maxsize og ikke minium
Avatar billede kgp43 Nybegynder
20. marts 2004 - 19:50 #2
upload scriptet virker fint til jpeg billeder.
Avatar billede kgp43 Nybegynder
20. marts 2004 - 19:51 #3
Det besvarede ikke dit spørgsmål :P
Billederne bliver lavet i en bredde af 150px med en variable højre.
Avatar billede kgp43 Nybegynder
21. marts 2004 - 01:57 #4
ingen der kan se hvorfor mine gif billeder ikke bliver reseized?
Avatar billede anco Nybegynder
21. marts 2004 - 12:19 #5
Jo, det kan jeg godt, det er fordi GD-lib ikke kan arbejde med gifbilleder, den funktion er fjernet da gif er en lukket standart, de regner med at det måske kommer med i den nye version af gd-lib da retten til standarten snart udløber...
Avatar billede kgp43 Nybegynder
21. marts 2004 - 13:11 #6
ahhh, det er godt nyt :)
Dvs. at scriptet er okay som det er, men det er GB-lib der ikke understøtter det endnu?

kan du ikke lave et svar anco, så du kan få point.
Avatar billede anco Nybegynder
21. marts 2004 - 13:14 #7
Jeg har ikke undersøgt dit script, men eftersom at står i et andet indlæg at det virker til jpeg billeder, så skulle det i hvert tilfælde godt kunne ændres så det også virker til gif, det er bare et par andre funktioner du skal benytte.

Andreas
Avatar billede anco Nybegynder
21. marts 2004 - 13:15 #8
ups, det var ikke et svar ;-)
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