Gå til innhold

Problemer med upload av bilder..


Anbefalte innlegg

Skrevet (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 av funkyboy
Videoannonse
Annonse
Skrevet
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.

Skrevet
<?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*
}

?>

Skrevet

Takker for svar! Array er egentlig en mye bedre måte her ja. :D

 

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?

Skrevet

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.

Skrevet
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. :D

  • 3 uker senere...
Skrevet

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.

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...