funkyboy Skrevet 14. februar 2008 Skrevet 14. februar 2008 (endret) Hei! Plages litt med å få lastet opp bilder fra PC, av en eller annen grunn. På Mac er ikke dette noe problem. Bruker får gjentatte ganger opp feilmeldingen "Kun jpg, png og gif- bilder er tillatt." ved forsøk på å laste opp .jpeg- bilder fra PC. Ser på php.net at det er mulig Explorer sender annen info enn ordinære nettlesere, men sjekker jeg for både jpg og jpeg, burde jeg jo være i boks..? Hva er det jeg kan ha oversett i følgende kode? På forhånd takk. $filtype = $_FILES['image']['type']; if (!(strstr($filtype, "jpeg") || strstr($filtype, "jpg") || strstr($filtype, "png") || strstr($filtype, "gif"))) { echo "Kun jpg, png og gif- bilder er tillatt."; } else { // .. Bildet lastes opp og skaleres deretter til riktig størrelse. Endret 14. februar 2008 av funkyboy
CruellaDeVille Skrevet 14. februar 2008 Skrevet 14. februar 2008 type gir mimetype, ikke filendelse. Det står image/jpg, image/jpeg, image/gif osv.
funkyboy Skrevet 14. februar 2008 Forfatter Skrevet 14. februar 2008 type gir mimetype, ikke filendelse. Det står image/jpg, image/jpeg, image/gif osv. Ja, det er nettopp dette som er poenget. Derfor benytter jeg strstr(); for å sjekke om dene inneholder de uttrykkene som skal være godkjent. Det skal eksempelvis ikke mulig å laste opp en fil som er endret fra test.swf til test.jpg.
BigJackW Skrevet 14. februar 2008 Skrevet 14. februar 2008 <?php $allowedFiletypes = array( 'image/gif', // Opera, Firefox, Internet Explorer 'image/jpeg', // Opera, Firefox 'image/png', // Opera, Firefox 'image/pjpeg', // Internet Explorer 'image/x-png' // Internet Explorer ); if ( !in_array( $filtype, $allowedFileTypes ) ) { $Message[] = "Kun JP(E)G, PNG og GIF-bilder er tillatt"; } else { // *File allowed* } ?>
funkyboy Skrevet 14. februar 2008 Forfatter Skrevet 14. februar 2008 Takker for svar! Array er egentlig en mye bedre måte her ja. Men er det ikke akkurat dette jeg har gjort i praksis? Verdien "jpeg" vil jo finnes i både jpeg og pjpeg, og verdien "png" finnes jo i både "png" og "x-png". Så skjønner egentlig ikke bæra av hvorfor dette ikke lar seg gjøre. Så om jeg skifter ut kodesnutten, vil jeg uansett få samme problem. Er det noe annet som kan gjøre at jeg møter på dette problemet?
BigJackW Skrevet 14. februar 2008 Skrevet 14. februar 2008 Når du laster opp et bilde: <?php echo "<pre>" . print_r($_FILES['image'], true) . "</pre>"; ?> Last opp f.eks. et png bilde i de forskjellige nettleserne så kan du se hvilke type de returnerer.
funkyboy Skrevet 14. februar 2008 Forfatter Skrevet 14. februar 2008 Når du laster opp et bilde: <?php echo "<pre>" . print_r($_FILES['image'], true) . "</pre>"; ?> Last opp f.eks. et png bilde i de forskjellige nettleserne så kan du se hvilke type de returnerer. Problemet er bare at jeg ikke har PC tilgjengelig om dagen. Men skal få fikset det snart. Uansett takk for svar.
funkyboy Skrevet 6. mars 2008 Forfatter Skrevet 6. mars 2008 Ja, er det ikke typisk at grunnen til at det ikke fungerte, nettopp var at bruker/ administrator gang på gang forsøkte å laste opp en .pdf- fil..? Dette var altså grunnen til syvende og sist. Hehe.
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå