mime type herkennen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jozef

Jozef

15/03/2008 20:33:00
Quote Anchor link
Hallo,
Ik probeer aan de hand van een eenvoudig voorbeeld een scriptje te schrijven waarbij een filtype (mime) kan herkend worden. Maar deze werkt om de een of andere reden niet. Het ingevoerde filetype wordt nooit herkend.
Kan iemand helpen?

Dit is het invoer formulier:
---------------------------

<form name="uploadform" enctype="multipart/form-data" name="uploadform" action="verwerk.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1024" />
<input type="file" name="uploadbestand" />
<input type="submit" name='submit' value="Uploaden" width="200" />
</form>

Dit is het verwerkingspagina:
-------------------------------------
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php

if($_FILES['uploadbestand']['type'] != "image/gif"
AND $_FILES['uploadbestand']['type'] != "image/png"  
AND $_FILES['uploadbestand']['type'] != "image/PNG"
AND $_FILES['uploadbestand']['type'] != "image/pjpeg"
AND $_FILES['uploadbestand']['type'] != "image/jpg"
AND $_FILES['uploadbestand']['type'] != "image/JPG"
AND $_FILES['uploadbestand']['type'] != "image/jpeg")
{


echo"filetype  niet toegelaten<br>";

}
else {
echo"ok, dit was een toegelaten  formaat<br>";
}

?>
 
PHP hulp

PHP hulp

01/11/2024 02:32:24
 

15/03/2008 20:38:00
Quote Anchor link
En als je eens
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo( $_FILES[ 'uploadbestand' ] );
?>

doet?
Het kan nl. zijn dat je browser geen mimetype meegeeft. Dan kan je eens zoiets gebruiken als mime_content_type.
Succes.


Groetjes,
Mathijs
 
Jozef

Jozef

15/03/2008 21:22:00
Quote Anchor link
Beste Matthijs,
De brouwser geeft wel degelijk mimetype mee. Ik heb onderstaande scriptje toegevoegd ter controle en krijg de volledige filenaam en mimetype te zien::

echo"filetype niet toegelaten<br>";
echo$_FILES['uploadbestand']['name']; // dit toegevoegd

:> met jouw voorstel kan ik het mimetype toch niet achterhalen, terwijl dat mijn bedoeling is...
 
Winston Smith

Winston Smith

16/03/2008 00:42:00
Quote Anchor link
Omdat je PHP niet klopt? If...AND: dan zou het mime-type én jpg én png én JPEG etc. moeten zijn, en dat is nooit zo.

Ik zou de toegelaten (of niet toegelaten) mime-types in een array gooien. De mime-type van de upload controleren en kijken of die in de array voorkomt. Al naar gelang de uitkomst daarvan bepaal je de verdere actie.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$allowed
= array ('image/jpeg', 'image/png');

if(in_array($_FILES['upload']['type'])) {
    // toegestaan, verder gaan met uploaden
} else {
    // ok, die mag niet. Foutmelding gooien...
}
?>
 

16/03/2008 11:55:00
Quote Anchor link
Kasper schreef op 16.03.2008 00:42:
Omdat je PHP niet klopt? If...AND: dan zou het mime-type én jpg én png én JPEG etc. moeten zijn, en dat is nooit zo.

Hij controleert of ze het allemaal níét zijn. Als dat zo is, dan is het dus geen geldig filetype, anders wel. Overigens is een array inderdaad netterm zoals Kasper al zegt.
 
GaMer B

GaMer B

16/03/2008 12:11:00
Quote Anchor link
De mime-type die de browser doorgeeft is niet betrouwbaar. Je kunt namelijk een bestand zich laten voordoen voor een ander type bestand. Je zou beter kunnen kijken met behulp van binaire fingerprints of het desbetreffende bestand daadwerkelijk een jpg/jpeg, png of gif is.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.