Avatar billede hono Nybegynder
28. april 2003 - 14:15 Der er 5 kommentarer og
2 løsninger

Kun jpg og gif ved uploade

Hvordan kan jeg i et upload-script sørge for at kun følgende "typer" accepteres:

gif, jpg, jpeg og jpe?

På forhånd tak

Hono
Avatar billede schaefner Juniormester
28. april 2003 - 14:18 #1
$tilladte = array("image/jpg","image/gif","image/jpeg");

if(!in_array($_FILES['fil']['type'], $tilladte)) {
  echo "Fyyh";
} else {
  // Make it happen
}
Avatar billede Slettet bruger
28. april 2003 - 14:19 #2
en lidt sjov måde meeeen :)

<?
$filtype = strtolower(substr($fil,strrpos($fil,".")));

if ($filtype==".jpg" || $filtype==".gif" || $filtype==".jpeg"){
print"fino :)";
}else{
print"Ikke fino :(";
}
?>
Avatar billede Slettet bruger
28. april 2003 - 14:20 #3
hvor $fil er den du tjekker.. men schaefners metode er bedre ;)
Avatar billede jakoba Nybegynder
28. april 2003 - 14:24 #4
HTML har en attribut accept="<mimetype>,<mimetype>,..." til <input type='file' felter.
    <input type='file' accept="image/jpeg,image/gif" name='whatever'>
Desværre har jeg aldrig fået den til at virke :(

se http://www.w3schools.com/tags/tag_input.asp under 'optional attributes'. Måske du får det til at virke.

mvh JakobA
Avatar billede schaefner Juniormester
28. april 2003 - 14:26 #5
Måske du lige skal tilføje to mere:
$tilladte = array("image/jpg","image/jpeg","image/pjpeg","image/pjpg","image/gif");
Avatar billede hono Nybegynder
28. april 2003 - 15:25 #6
Hmm, kan ikke få det til at virke :(. Den siger uanset hvad, at filtypen ikke understørres. Her er koden jeg bruger (der er sikkert også mange andre fejl i den):

<?
require("header.php");

$status = "";

session_start();
if(session_is_registered("bruger")){
$status = "bruger";
}elseif(session_is_registered("admin")){
$status = "admin";
}

if(($status=="bruger")||($status=="admin")){

if( isset($billede) ){


//TJEKKER FILTYPE

$tilladte = array("image/jpg","image/jpeg","image/pjpeg","image/pjpg","image/gif");

if(!in_array($_FILES['billede']['type'], $tilladte)) {

$msg = "FEJL: Kun gif og jpg filer understøttes $hojde $bredde $typen $billede hej!";

} else {                                  //HVIS FILTYPEN ER OKAY


    $msg = "Filen $billede_name er uploadet";

    $Str=filesize($billede);
    $Str=round($Str / 1024 * 100) / 100; //størrelse i KB


//HVIS DER IKKE ER VALGT NOGEN MAPPE (ER SKET EN FEJL) VÆLGES BLOT HOVEDMAPPEN

if(!$mappe){
$mappe = 1;
}


//FINDER FILTYPE, HØJDE OG BREDDE SÅ DE KAN PUTTES I DATABASEN

$dimensioner = getimagesize($billede);
$bredde = $dimensioner[0];
$hojde = $dimensioner[1];
$typen = $dimensioner[2];


//FINDER UD AF OM MAN ER ADMIN ELLER BRUGER, OG GEMMER ENS NAVN I EN VARIBLE, SOM PROPPES I DATABASEN

if($admin){
$tilfojer = $admin;
}elseif($bruger){
$tilfojer = $bruger;
}


//TIDEN FINDES

$tidspunkt = time();


//CONNECTES TIL DATABASEN

$forbindelse = mysql_connect($my_host,$my_root,$my_pass) or die(mysql_error());
mysql_select_db($my_daba, $forbindelse) or die(mysql_error());

mysql_query("INSERT INTO pics (filtype, filnavn, mappe, beskrivelse, bredde, hojde, bruger, tidspunkt, Str)VALUES ('$typen', '$billede_name', '$mappe', '$beskrivelse', '$bredde', '$hojde', '$tilfojer', '$tidspunkt', '$Str')");


//BILLEDE OMDØBES EFTER DEN UNIKKE ID, SÅ IKKE KOMMER DUBLETTER. DET GEMMES NU I MAPPEN "BILLEDER_OFF"

    $fileID = mysql_insert_id() ;
    $nynavn = $fileID.".".$typen;

    move_uploaded_file ($billede, "billeder_off/$nynavn") or die(mysql_error());

    mysql_close($conn);  //disconnect


    }//SLUT PÅ HVIS FILTYPEN ER OKAY
   
  }else{    //HVIS IKKE BILLEDE $BILLEDET ER SAT

$msg = "FEJL: Intet billede valgt!";

}//SLUT PÅ "ELSE - HVIS $BILLEDE IKKE ER SAT"

}//SLUT PÅ "HVIS SESSION ER REGISTRERET"

header("location: tilfoj.php?msg=$msg&h=$hojde&b=$bredde&t=$typen");
?>
Avatar billede hono Nybegynder
28. april 2003 - 19:36 #7
Kan det have noget med det der "globale varibler" noget at gøre? Kan det være fordi det ikke er slået til på mit webhotel?
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Chef for SAP-forretningsspecialister

BEC Financial Technologies

Development Manager for Document Lifecycle

Politiets Efterretningstjeneste

Data Engineer til at udvikle PET's dataplatform