webForumDet fria alternativet

Alert vid fel filändelse

JavaScript

2 svar · 462 visningar · startad av Tulork

Medlem sedan aug. 2004903 inlägg
Frågan#1

Så här ser tumnagelegneratorn jag införskaffat/fått av det trevliga folket på WF.

<?php
include("setts/conn.php");
//###################################
$thumb = "pic/thumb";                     // Mappen där thumbnails ska sparas
$original = "pic/original";             // Mappen där originalbilden ska sparas
$nybredd = 100;                        // Bredd som bilden ska ha i pixlar
$kompression = 100;                // Vilken komprimering (100=ingen)

//###################################

?>
<form action="test.php" method="post" enctype="multipart/form-data" name="upload" id="upload">
    <input name="file" type="file" size="30" />
    <input type="submit" name="nyBild" value="Ladda upp" />
</form>
<?php

// ladda upp ny bild
if (!empty($_FILES['file']['name'])) {

    if (is_uploaded_file($_FILES['file']['tmp_name'])) {
    
            
        $bildnamn = $_FILES['file']['name'];
        $tempnamn = $_FILES['file']['tmp_name'];
        $filandelse = strtolower(substr($bildnamn, (strrpos($bildnamn, '.'))));
            
        $bildstrl =  getimagesize($tempnamn);
        

    //slumpar fram ett filnamn
    include ("setts/filnamns_generator.php");
    $bildnamn = $u;
    
        // Kolla filen så det är en bild
        if (($_FILES['file']['type'] != "image/gif") && ($_FILES['file']['type'] != "image/jpeg") && ($_FILES['file']['type'] != "image/png") && ($_FILES['file']['type'] != "image/pjpeg")) {
            echo "Bilden måste vara av typen gif, jpg, jpeg eller png.<br />
          Filändelser med stora bokstäver accepteras inte";
            exit;
        }
         
        // Ändra storleken om bilden är större än $nybredd
        if ($nybredd < $bildstrl[0]) {
    
            $nyhojd = ceil(($nybredd / $bildstrl[0]) * $bildstrl[1]);
            // Gör om bildens storlek
            $nybild = imagecreatetruecolor($nybredd, $nyhojd);
            // Kontrollera vilken bildtyp det är (1=gif , 2=jpg , 3=png)
            switch($bildstrl[2]) {
                case 1:
                    $bild = imagecreatefromgif($tempnamn);
                break;
                case 2:
                    $bild = imagecreatefromjpeg($tempnamn);
                break;
                case 3:
                    $bild = imagecreatefrompng($tempnamn);
                break;
            }
            imagecopyresampled($nybild, $bild, 0, 0, 0, 0, $nybredd, $nyhojd, $bildstrl[0], $bildstrl[1]);
            // Kopiera bilden till sin mapp
       $bild_namn = "$bildnamn$filandelse";
            $sparabild = $thumb . '/' . $bild_namn;
            imagejpeg($nybild, $sparabild, $kompression);
        //Flyttar orginalbilden till rätt mapp
        $bild_namn = "$bildnamn$filandelse";
            move_uploaded_file($tempnamn, $original . '/' . $bild_namn);
    $doit = "INSERT INTO annons (thumb, original)    VALUES ('$bildnamn$filandelse', '$bildnamn$filandelse')";
    $now = mysql_query($doit) or die ('Ett fel har uppstått');

            // Frigör minne som associerats med bilderna
            imagedestroy($bild);
            imagedestroy($nybild);
            
    

        } else {
            move_uploaded_file($tempnamn, $thumb . '/' . $bild_namn);
        copy ($thumb . '/' . $bild_namn, $original . '/' . $bild_namn);

    $doit = "INSERT INTO annons (thumb, original)    VALUES ('$bildnamn$filandelse', '$bildnamn$filandelse')";
    $now = mysql_query($doit) or die ('Ett fel har uppstått');

           

        }
    }
}
?>

Jag önskar nu lägga till ett litet javascript som kollar formuläret vid submit vad gäller filändelsen.. Jag vill bara tillåta jpeg, jpg, png, gif... om det försöks med en annan filändelse ska en Alert säga ifrån när man submitar.. alltså den stannar innan den laddat upp någonting.

Går detta ordna på ett smidigt sätt??

PS. Wohoo 500 inlägg!!

Medlem sedan feb. 2006511 inlägg
Medlem sedan apr. 2006244 inlägg
#3
if(
  !document.getElementById('formularet').user_file.value.substr(-4).toLowerCase().match('.jpg')
  &&   
  !document.getElementById('formularet').user_file.value.substr(-5).toLowerCase().match('.jpeg')
) 

{
alert('filen var inte i jpg-format');
return false;
}

------
<form action="" id="formularet">
<input type="file" name="user_file" /> etc...
260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)