Hvis du har exif modulet slået til, så kig på det. For bare at kigge på extension på en fil er ikke godt nok, det vil give fejl... Ellers kig på getimagesize.
Du har fået byttet totalt rundt på det.... og jeg kan ikke lige se din ide med dit script, for det ligner noget der er taget 12 forskelligesteder fra og variabler bliver ved med at skifte navn, og det er nok også det der har fået dig helt up hvor du ikke kan bunde, især det at $nim ikke bliver sat, og du forsøger at sætte kvalitet på png og gif...
Tror du skal kigge på exif funktionerne istedet, plus det at kigge på fil extension ikke er den bedste måde at finde ud af hvilket type billed det er...
switch(exif_imagetype($_FILES['fil']['name'][$numb])) { case (IMAGETYPE_GIF): echo 'Billedet er i .gif format.'; break; case (IMAGETYPE_PNG): echo 'Billedet er i .png format.'; break; default: echo 'Billedet er i .jpg format.'; }
Kan man ændre størrelsen og kvaliteten på gif og png?
Størrelsen ja, kvaliteten, nej. Og exif er måde til at se hvilket format det er, men man kan ikke bare sige at hvis det ikke er png eller gif så er det jpg... det kunne jo være bmp der hedder gif....
Det vil sige alt jeg skal slette det her kode, og så bruge exif_imagetype() istedet?
Det med at den ikke tjekker efter andre fil typer, der kunne man vil bare lave et array med: IMAGETYPE_GIF, IMAGETYPE_PNG og så tjekke om de er tilladte som filtyper med in_array($streng, $anden_streng)?
Du skal tage højde for flere ting, at det der uploades ikke er andet end nogle af de billeder du vil have, og at det ikke ender på noget som kan køres på serveren.
Dvs jeg må ikke kunne uploade et gif billede som har noget php i sig og ender på php... osv...
Så der skal være kontrol på hvad filen ender på og hvilken data der er i filen så dine funktioner ikke fejler.
switch(exif_imagetype('image.jpg')) { case (IMAGETYPE_GIF): echo 'Billedet er i .gif format.'; break; case (IMAGETYPE_PNG): echo 'Billedet er i .png format.'; break; case (IMAGETYPE_JPEG): echo 'Billedet er i .jpg format.'; default: echo 'Din fil skal være i enten gif, jpg eller png format.'; }
Den skriver kun: Din fil skal være i enten gif, jpg eller png format.
Du har nogle små fejl, men det betyder ikke at det ikke skulle virke: switch (exif_imagetype($img)) { case IMAGETYPE_GIF: echo 'Billedet er i .gif format.'; break; case IMAGETYPE_PNG: echo 'Billedet er i .png format.'; break; case IMAGETYPE_JPEG: echo 'Billedet er i .jpg format.'; break; default: echo 'Din fil skal være i enten gif, jpg eller png format.'; }
Så din fejl hvis det ikke virker ligger et andet sted.
Virker fint for mig, og har selv version 1.4 $Id: exif.c,v 1.173.2.5 2006/04/10 18:23:24 helly Exp $ og har ingen problemer. Måske din version har bugs...
Nu har jeg prøvet at bruge exif_imagetype(), til at tjekke om det er en tilladt filtype..
Når jeg skal uploade et billede så skriver den nu: Din fil skal være i enten gif, jpg eller png format.Din fil skal være i enten gif, jpg eller png format, og fylde mindre end 1mb.
Tror når du laver noget du skal til at slå ALLE fejl til...
$img = exif_imagetype($_FILES['fil']['name'][$numb]); vil give fejl, som efter der ikke er nogen fil med det navn... $_FILES['fil']['tmp_name'][$numb] er der...
Og sådan er der så meget, tror du skal starte med at gå tilbage til hvor du kan overskue det, og så tilføje EN ting ad gangen.
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.