uranus Skrevet 8. februar 2006 Del Skrevet 8. februar 2006 Hei! Jeg trenger hjelp med en måte med php å laste opp et bilde (si maks 2 mb da), så skal bildet forminskes proporsjonalt (si 150px høyt og dynamisk bredde i forhold til det tidligere bildet slikt at bildet gorblir proporsjonalt). Så skal det nye bildet lagres i en mappe og orginalbildet skal slettes. Jeg trenger da en kode og formen for å gjøre dette. Har søkt på google her og der, men fant ikke noe som funka for meg helt. Hadde vært flott om dere kunne hjelpe meg og eventuelt forklare meg litt hvordan det er oppbygd osv. Takk! Lenke til kommentar
kakkle Skrevet 8. februar 2006 Del Skrevet 8. februar 2006 TA en titt på image-funksjonene og "Handling file uploads" i manualen, så finner du egentlig det du trenger Lenke til kommentar
uranus Skrevet 8. februar 2006 Forfatter Del Skrevet 8. februar 2006 (endret) <?php $rand = rand(1, 1000); $md5 = md5($rand); if(isset($_POST['Submit'])) { $bildenavn = $md5; // Brukernavnet til medlemmen som legger opp bildet. $bildeformat = '.jpg'; // Hva slags bildeformat du vil bildet skal lagres i. $size = 120; // Thumb størrelse (høyde) $filedir = 'tmp/'; // Mappen for orginal bildet $thumbdir = 'image/'; // Mappen for thumb bildet $prefix = $bildenavn; // Prefiksen for bilde fila. $tmpprofilbilde = $filedir.$bildenavn.$bildeformat; $profilbilde = $thumbdir.$bildenavn.$bildeformat; $maxfile = '2000000'; // 2000 kb eller 2 mb $mode = '0666'; $userfile_name = $_FILES['image']['name']; $userfile_tmp = $_FILES['image']['tmp_name']; $userfile_size = $_FILES['image']['size']; $userfile_type = $_FILES['image']['type']; if (isset($_FILES['image']['name'])) { $prod_img = $filedir.$prefix.$bildeformat; $prod_img_thumb = $thumbdir.$prefix.$bildeformat; move_uploaded_file($userfile_tmp, $prod_img); chmod ($prod_img, octdec($mode)); $sizes = getimagesize($prod_img); $aspect_ratio = $sizes[1]/$sizes[0]; if ($sizes[1] <= $size) { $new_width = $sizes[0]; $new_height = $sizes[1]; }else{ $new_height = $size; $new_width = abs($new_height/$aspect_ratio); } $destimg=imagecreatetruecolor($new_width,$new_height) or die('Feil med å lage bildet!'); $srcimg=imagecreatefromjpeg($prod_img) or die('Problem med å åpne kilde bildet!'); imagecopyresized($destimg,$srcimg,0,0,0,0,$new_width,$new_height,imagesx($srcimg),imagesy($srcimg)) or die('Problem i å gjøre bildet til ny størrelse!'); imagejpeg($destimg,$prod_img_thumb,90) or die('Problem med lagring!'); imagedestroy($destimg); unlink($tmpprofilbilde); } echo ' <span class="main-tittel">Lastet opp</span><br><br> <img src="'.$prod_img_thumb.'" width="'.$new_width.'" heigt="'.$new_height.'"><br><br> Bildet er lastet opp og er klart til bruk. Om du vil ha nytt bilde, gå til "profil bilde" og sletter bildet, så laster du opp en på nytt. '; }else{ echo ' <form action="lagre.php" method="post" enctype="multipart/form-data"> <input name="file" type="file" id="file"> <br> <input type="submit" name="Submit" value="Submit"> </form> '; } ?> Det er det jeg har nå, men bildet blir ikke lasta opp. Eller jeg har bare testa på lokal webserver på Windows da, men burde ikke være noe forskjell? Endret 8. februar 2006 av uranus Lenke til kommentar
kakkle Skrevet 8. februar 2006 Del Skrevet 8. februar 2006 (endret) HEi I formen har du: <form action="lagre.php" method="post" enctype="multipart/form-data"> <input name="file" type="file" id="file"> <br> <input type="submit" name="Submit" value="Submit"> </form> I delen som behandler det som er sendt har du: ... $userfile_name = $_FILES['image']['name']; $userfile_tmp = $_FILES['image']['tmp_name']; $userfile_size = $_FILES['image']['size']; $userfile_type = $_FILES['image']['type']; if (isset($_FILES['image']['name'])) { ... Ser du feilen ? EDIT: Gikk ikke med bold i code tag... (Det visste jeg jo egentlig, da ) Endret 8. februar 2006 av kakkle Lenke til kommentar
uranus Skrevet 9. februar 2006 Forfatter Del Skrevet 9. februar 2006 *føle seg dum* Hehe, takk for hjelpa Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå