Gå til innhold

Størrelse på bildefil ved opplasting.[LØST]


Anbefalte innlegg

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 av swj
Lenke til kommentar
Videoannonse
Annonse

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 av swj
Lenke til kommentar

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

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 av swj
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...