swj Skrevet 14. mai 2007 Del Skrevet 14. mai 2007 (endret) Jeg har en kode for opplasting av bilder til en mappe. I opplastingsskjemaet velger man filen man ønsker å laste opp, og man velger mellom de forhåndsdefinerte navnene. Jeg ønsker en sjekk på at bildene er 500x500 px. Har en kode for det også, men jeg får det ikke til å virke. Det som skjer nå er at bildene blir lastet opp uansett hvilken størrelse de har.... Noen som har gode råd å komme med? <form action="upload_flash.php" onsubmit="return sjekkform();" method="post" enctype="multipart/form-data"> <h3>Opplasting av bilder til flash</h3> Bildene må være i formatet 500 px * 500 px <br /> Velg filnavn og bilde til opplasting: <br /> <select name="flashvalg"> <option value="flash1.jpg">flash1.jpg</option> <option value="flash2.jpg">flash2.jpg</option> <option value="flash3.jpg">flash3.jpg</option> <option value="flash4.jpg">flash4.jpg</option> <option value="flash5.jpg">flash5.jpg</option> <option value="flash6.jpg">flash6.jpg</option> </select> <br /> <input type="file" name="filbane" size="30" /><br> <input type="submit" value="Last opp fil" name="last_opp"> </form> <?php if(empty($_FILES['filbane']['name'] ) ) { die("Du valgte ingen fil til opplasting"); }else { $temp_fil = $_FILES['filbane']['tmp_name']; $filnavn ="forside_flash/" . $_POST['flashvalg']; move_uploaded_file($temp_fil, $filnavn) or die ("Kunne ikke kopiere over bildet"); $filtype=$_FILES['filbane']['type']; //MIME-typen til filen $storrelse=$_FILES['filbane']['size']; //størrelsen if (strstr($filtype, "jpg") ) { //vis bildet dersom formatet er .jpg if (height != 500 && width != 500) { //bildet må være kvadratisk der hver side er 500px die("Filen du forsøker å laste opp er i feil størrelse! <br> Bildet må være i størrelsen 500px * 500px"); } } } echo "Opplastingen var vellykket!" ?> Endret 14. mai 2007 av swj Lenke til kommentar
Rasks Skrevet 14. mai 2007 Del Skrevet 14. mai 2007 jeg tror du blir nødt til å bruke getimagesize() for å finne størrelsen til bildet. Denne linjen her stemmer ikke helt, gjør den vel?? if (height != 500 && width != 500) { Lenke til kommentar
swj Skrevet 14. mai 2007 Forfatter Del Skrevet 14. mai 2007 (endret) Rasks: Men finner ikke getimagesize() størrelsen på bildet i kb da? Jeg ønsker å sjekke om høyden og bredden til bildet er 500 px hver vei. Eller misforstår jeg hva du mener? Edit: Slik jeg har det stående nå fungerte helt fint helt til jeg endret til å bruke $_POST for å tvinge gjennom det forhåndsdefinerte filnavnet på filen som blir lastet opp. Endret 14. mai 2007 av swj Lenke til kommentar
Rasks Skrevet 14. mai 2007 Del Skrevet 14. mai 2007 det går også ann å bruke getimagesize til å finne høyde og bredde: list($width, $height, $type, $attr) = getimagesize("img/flag.jpg"); Lenke til kommentar
swj Skrevet 14. mai 2007 Forfatter Del Skrevet 14. mai 2007 Ok, takk! Da skal jeg forsøke det Lenke til kommentar
Crowly Skrevet 14. mai 2007 Del Skrevet 14. mai 2007 Det er også mulig å resize bildene etter at de er lastet opp http://www.hudzilla.org/phpwiki/index.php?...rotating_images PHP offers you two different ways to resize an image, and you should choose the right one for your needs. The first option, imagecopyresized() , allows you to change the size of an image quickly and easily, but has the downside of producing fairly low-quality pictures. When an image with detail is resized, aliasing ("jaggies") is usually visible, which makes the resized version hard to read, particularly if the resizing was to an unusual size. The other option is imagecopyresampled() , which takes the same parameters as imagecopyresized() and works in the same way with the exception that the resized image is smoothed so that it is still visible. The downside here is that the smoothing takes more CPU effort, so the image takes longer to produce. Men det ser ut som at hvis man ønsker at kvaliteten skal forbli urørt så ikke dette den optimale løsningen. Har aldri testet dette selv. Lenke til kommentar
swj Skrevet 14. mai 2007 Forfatter Del Skrevet 14. mai 2007 (endret) Jeg forsøkte denne løsningen, og det ser ut til å fungere tilfredsstillende! Takk for hint i riktig retning! <?php if(empty($_FILES['filbane']['name'] ) ) { die("Du valgte ingen fil til opplasting"); }else { $temp_fil = $_FILES['filbane']['tmp_name']; $filnavn ="forside_flash/" . $_POST['flashvalg']; move_uploaded_file($temp_fil, $filnavn) or die ("Kunne ikke kopiere over bildet"); $filtype=$_FILES['filbane']['type']; //MIME-typen til filen $storrelse=$_FILES['filbane']['size']; //størrelsen $size = getimagesize($filnavn); $height = $size[1]; $width = $size[0]; if ($height != 500) { die("Filen er i feil størrelse eller i feil format"); } else if ($width != 500) { die("Filen er i feil størrelse eller i feil format"); } echo "Opplastingen var vellykket! \n"; } ?> Endret 14. mai 2007 av swj 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å