Avatar billede JJ77 Juniormester
22. maj 2006 - 16:31 Der er 9 kommentarer og
1 løsning

Kan ikke uploade visse typer JPG-filer

Hej eksperter.

Jeg har nedenstående kode som gør det muligt at uploade et billede til en annonce. Men jeg har pludselig opdaget at der åbenbart er visse typer JPG-filer som ikke kan uploades. Jeg er helt lost og kan slet ikke finde ud af hvad der er problemet. Nogen som kender til dette fænomen?



function resize( $filename, $newfilename, $maxw, $maxh )
{
    $result = false;
    $srcim = imagecreatefromjpeg( $filename );
    $ow = imagesx( $srcim );
    $oh = imagesy( $srcim );
    $wscale = $maxw / $ow;
    $hscale = $maxh / $oh;
    $scale = ( $hscale < $wscale ? $hscale : $wscale );
    $nw = round( $ow * $scale, 0 );
    $nh = round( $oh * $scale, 0 );
    $dstim = imagecreatetruecolor( $nw, $nh );
    imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
    $result = imagejpeg( $dstim, $newfilename, 85 );
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return $result;
}

$allowPics = array("jpg","jpeg","jpe","JPG","JPEG","JPE");


  if(mysql_affected_rows()>0)
    {
        $errmsg = "";
        $artikelID = mysql_insert_id();
        for($i = 1; $i <= 3; $i++)
        {
            if($_FILES['imagefile']['size'][$i] > 1048000)
            {
                $errmsg .= "Billede " . $i . " er for stort, max 1024000 bytes!<br>";
            }
            else
            {
                $extension = strtolower(end(explode(".",$_FILES['imagefile']['name'][$i])));
                if(!in_array($extension,$allowPics))
                {   
                    $errmsg .= "Billede " . $i . " er forkert type, kun jpeg!<br>";
                }
                else
                {
              $dato = date("y-m-d h:i:s");
                    resize($_FILES['imagefile']['tmp_name'][$i],"latest.img",350,350);
                    $instr = fopen("latest.img","rb");
                    $image = addslashes(fread($instr,filesize("latest.img")));               
                    mysql_query ("insert into billeder_salgAfProdukt (id, artikelid, pic, oprettetDato) values ('', ".$artikelID.",'".$image."','.$dato.')") or die(mysql_error());
                }
            }
        }
Avatar billede olebole Juniormester
22. maj 2006 - 16:36 #1
<ole>

- og hvad er det for jpg'er, du ikke kan uploade? Uden den info er det jo svært at vide, hvad der er galt  :)

/mvh
</bole>
Avatar billede JJ77 Juniormester
22. maj 2006 - 16:39 #2
Det er det som er mit problem. Det ligner en normal jpg-fil, den er bare taget med et andet kamera;-). Det virker totalt mærkeligt. Så jeg kan desværre ikke give dig andre informationer. Burde ovenstående script ikke snuppe alle jpg-filer?
Avatar billede olebole Juniormester
22. maj 2006 - 16:48 #3
Det kommer anpå MIME-typen. Prøv at sætte en:
    print "Hertil";

- ind i din kode, og upload et billede. Så kan du flytte på den og finde udaf, hvor det går galt. Så kan vi tage den derfra
Avatar billede JJ77 Juniormester
22. maj 2006 - 17:40 #4
Har lige fundet ud af noget mystisk.. Tror det er noget med filstørrelsen. Der står godt nok på selve billedet at det kun fylder 500 kb. hvis jeg fx sætter max til 2048000 så tillader den 2mb, ik? hvad er det maksimale jeg kan sætte den til?
Avatar billede michael_stim Ekspert
22. maj 2006 - 17:43 #5
Kommer an på hvad den er sat til php.ini, men default er 2Mb
Avatar billede JJ77 Juniormester
22. maj 2006 - 17:54 #6
Det mystiske er. først prøver jeg at uploade et billede på 1,2 megabytes.. det kan den ikke. Så prøver jeg med et på 1,4, og det kan den godt:-(

hvor skal  print "Hertil"; sættes ind i koden? og hvad kan jeg se med dette?
Avatar billede JJ77 Juniormester
22. maj 2006 - 18:12 #7
Prøvede at flytte lidt rund på print hertil... den blev vist hvis jeg satte den før
if($_FILES['imagefile']['size'][$i] > 2096000) men den blev ikke vist hvis jeg satte den efter :-(
Avatar billede JJ77 Juniormester
22. maj 2006 - 18:25 #8
Tror faktisk jeg er ved at lure hvad det er. Tror det er noget med billedets dimensioner.. Først prøvede jeg et billede på 1,2 mb i størrelsen 3072x2304. Dette kunne ikke uploades. Herefter prøvede jeg et billede på 1,4 mb i størrelsen 1753x1623. Dette kunne godt uploades. er der en maksstørrelse eller hva? og hvordan løser jeg dette?
Avatar billede JJ77 Juniormester
22. maj 2006 - 18:47 #9
Kunne også godt få den til at uploade et billede på 2 mb i størrelsen 2100x1481.
Avatar billede JJ77 Juniormester
27. maj 2006 - 22:13 #10
lukker
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