Avatar billede challenge Praktikant
05. februar 2006 - 13:10 Der er 9 kommentarer og
1 løsning

Upload problemer i IE

Hey allesammen.

Man støder ind i mange problemer som nybegynder - Det er nok derfor jeg har oprettet ca. 10 spørgsmål i denne uge...

Og hér er jeg så igen - Men endnu et problem...!

Jeg har siddetmed et upload system, hvilket virker - Dog kun i Firefox. Jeg har ingen idé hvorfor, da jeg godt kan uploade andre steder. Bare ikke på min side.

Min kode er som følger:

<?
$db = mysql_connect("xxx", "xxx", "xxx");
mysql_select_db("xxx", $db);
if($_FILES['userfile']['size']>0)
{
 
    $fra = $_FILES['userfile']['tmp_name'];
    $til = $_SERVER["DOCUMENT_ROOT"] ."/brugersys/upload/" . date("YmdHis") . $_FILES['userfile']['name'];
    $til_thumb = $_SERVER["DOCUMENT_ROOT"] ."/brugersys/upload/thumb_" . date("YmdHis") . $_FILES['userfile']['name'];

    if ($_FILES['userfile']['type'] != "image/jpeg") {
    echo "Filtype ikke tilladt...";
    exit;
    }
    if(function_exists("move_uploaded_file"))
    {
      move_uploaded_file($fra, $til);
    }
    else
    {
      copy($fra, $til);
    }

    if(file_exists($til))
    {
   
   
$pic = $til;                // Originalt billede
$thumb = $til_thumb;            // Ønsket miniature billede

function thumb($sourcefile, $targetfile) {
    $size = 70;                            // Max størrelse (pixler)
    $source_id = imageCreateFromJPEG($sourcefile);
    $source_x = imagesx($source_id);
    $source_y = imagesy($source_id);
    $delta = $size/max($source_x, $source_y);
    $dest_x = round($source_x*$delta);
    $dest_y = round($source_y*$delta);
    $target_id=imagecreatetruecolor($dest_x, $dest_y);
    imagecopyresampled($target_id,$source_id,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y);
    imagejpeg($target_id,$targetfile,100);
}


      $bruger_id = mysql_query("SELECT * FROM bruger WHERE brugernavn = '".$_SESSION[brugernavn]."'") or die(mysql_error());
      $bruger = mysql_fetch_array($bruger_id);
      $filnavn = date('YmdHis') . $_FILES['userfile']['name'];
      $dato = date("d/m - Y, H.i:s");
      $date = date("Y-m-d H.i:s");
      thumb($pic, $thumb);
      mysql_query("INSERT INTO galleri (navn, url, galleri, bruger, dato, date) VALUES ('$_POST[navn]', '$filnavn', '$_POST[kategori]', '$bruger[id]', '$dato', '$date')") or die(mysql_error());
      echo "Filen blev uploadet<br><a href=beskyttet.php?side=galleriupload>Upload endnu et billede</a>";
    }
    else
    {
      echo "Filen blev ikke uploadet";
    }
}
else
{
    ?>
**form**
<?
}
?>

Jeg får fejlen: (i IE)
"Filtype ikke tilladt..."


Skal der være dig igen Jakobdo? ;)
Avatar billede showsource Seniormester
05. februar 2006 - 13:30 #1
Fordi IE ser det som image/pjpeg f.eks.
Hvis du blot laver en "rå" uplaod, og udprinter type, kan du få forskellige resultater i forskellige browsere
Avatar billede showsource Seniormester
05. februar 2006 - 13:33 #2
Det du kan ellers, er jo enten at tilføje pjpeg eller bruge getimagesize() til at finde filtypen ved upload, nu det er billeder du gerne vil uploade.

$up_type = getimagesize($_FILES["userfile"]["tmp_name"]);

if($up_type[2] != 2) {
echo "Filtype ikke tilladt...";
exit;
}
Avatar billede zappa Nybegynder
05. februar 2006 - 13:50 #3
Prøv med:
...
if ($_FILES['userfile']['type'] != "image/pjpeg") {
...
dvs. tilføj et "p".
Avatar billede showsource Seniormester
05. februar 2006 - 13:55 #4
skal jo så være

    if ($_FILES['userfile']['type'] != "image/jpeg" || $_FILES['userfile']['type'] != "image/pjpeg") {
    echo "Filtype ikke tilladt...";
    exit;
    }
Avatar billede challenge Praktikant
05. februar 2006 - 14:15 #5
Tak for svarene!

Med din løsning, showsource, virker det hverken i IE eller Firefox...
Avatar billede challenge Praktikant
05. februar 2006 - 14:16 #6
(din sidste løsning)
Avatar billede showsource Seniormester
05. februar 2006 - 14:19 #7
$tilladte = array("image/jpeg", "image/pjpeg");

    if (!in_array($_FILES['userfile']['type'], $tilladte)) {
    echo "Filtype ikke tilladt...";
    exit;
    }
Avatar billede challenge Praktikant
05. februar 2006 - 14:21 #8
Det var sku det!
Smider du et svar?

takker!
Avatar billede showsource Seniormester
05. februar 2006 - 14:34 #9
kan jeg godt.
Men det er nu heller ingen dum ide at tjekke op med getimagesize() nu det er billeder du vil uploade.
Avatar billede challenge Praktikant
05. februar 2006 - 14:57 #10
Jeg prøvet at kigge på det :)
Tak for hjælpen...
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