Controleren of file afbeelding is

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Crude Oil

Crude Oil

19/09/2010 19:11:02
Quote Anchor link
Hallo,

Ik maak een upload script voor afbeeldingen. Nu is mijn vraag hoe je het beste kunt controleren of een bestand van het juiste type (png, jpg/jpeg, bmp of gif) is?
 
PHP hulp

PHP hulp

28/07/2021 13:35:41
 
Vincent Huisman

Vincent Huisman

19/09/2010 20:07:21
Quote Anchor link
mimetype en extentie
 
Crude Oil

Crude Oil

19/09/2010 20:19:13
Quote Anchor link
is dat een veilige manier?
 

19/09/2010 20:19:50
Quote Anchor link
Nee, niet als je die van $_FILES gebruikt.
 
Crude Oil

Crude Oil

19/09/2010 20:45:25
Quote Anchor link
Welke moet je dan gebruiken? de functie finfo?
Gewijzigd op 19/09/2010 20:48:43 door Crude Oil
 
Hendrik de Jager

Hendrik de Jager

19/09/2010 20:54:55
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
//De extensie van het geuploade bestand.
$tmp = explode ( '.', $_FILES['uploadedfile']['name']);
$fileext = $tmp[count($tmp)-1];

//Extencies die zijn toegestaan.
$allowedext = array("png","jpg","jpeg");

//Kijken of het bestand een toegestane extensie heeft
if (in_array($fileext,$allowedext)) {
}
else {
    echo "Bestand niet toegestaan.<br/>";
}
Gewijzigd op 19/09/2010 20:55:22 door Hendrik de Jager
 
Crude Oil

Crude Oil

19/09/2010 20:57:41
Quote Anchor link
Dat stuk wat jij plaatst kan toch onveilig zijn?
 

19/09/2010 20:58:53
Quote Anchor link
Ja, dat moet je ook niet geloven, want dat is ook door de browser gezet.
Inderdaad kan je een file info functie gebruiken.
 
Crude Oil

Crude Oil

19/09/2010 21:16:43
Quote Anchor link
Ik probeer nu de functie finfo_open, maar nu krijg ik Fatal error: Call to undefined function finfo_open()

betekent dat dat finfo bij mij niet werkt?
 
Pim -

Pim -

19/09/2010 21:22:50
Quote Anchor link
Het checken van de achterste extensie is toch voldoende? Die bepaald immers hoe het op de server behandeld wordt en .png e.d. zullen nooit door de interpreter gaan (tenzij je instelt van wel, maar ja...)
 
- SanThe -

- SanThe -

19/09/2010 21:24:03
Quote Anchor link
Die functie bestaat niet in jouw versie.

finfo_open
finfo->__construct

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)
 
Crude Oil

Crude Oil

19/09/2010 21:27:11
Quote Anchor link
Daar ligt het dus aan, wat kan ik dan het beste gebruiken, SanThe?
 
- SanThe -

- SanThe -

19/09/2010 21:31:53
Quote Anchor link
Als je die functie wilt gebruiken zal je php moeten updaten.
 
Crude Oil

Crude Oil

19/09/2010 21:38:11
Quote Anchor link
Php updaten kan ik niet, dat kunnen alleen die mensen van de hosting ofzo. Is er geen andere veilige manier?
 
Arjan -

Arjan -

19/09/2010 23:39:16
Quote Anchor link
Je kan ook gebruik maken van getimagesize. Wanneer deze false teruggeeft dan weet je 99 van de 100 keer zeker dat het geen afbeelding is. Echter raad ik je aan dit alleen met afbeeldingen op je eigen server te doen.
Gewijzigd op 19/09/2010 23:40:59 door Arjan -
 
Crude Oil

Crude Oil

20/09/2010 19:33:26
Quote Anchor link
Ik probeer nu met getimagesize, maar hoe kun je de imagesize uit de $_FILES halen?
 

20/09/2010 19:35:56
Quote Anchor link
Gewoon die functie erover halen?
 
Crude Oil

Crude Oil

20/09/2010 19:40:21
Quote Anchor link
@Karl Karl
ik bedoel hoe moet ik het precies neerzetten: getimagesize($_FILES["file"][wat moethier?])
Gewijzigd op 20/09/2010 19:43:48 door Crude Oil
 

20/09/2010 19:50:31
Quote Anchor link
Zie eens php.net.
 
Dalando De Zuil

Dalando De Zuil

20/09/2010 20:19:17
Quote Anchor link
Zie deze tutorial / snippet, beantwoord al je vragen.
 
Crude Oil

Crude Oil

20/09/2010 20:22:33
Quote Anchor link
nee want dat is lang niet altijd veilig. Overigens lukt het hele uplaodscript niet emer aangezien hij beweert dat $_FILES leeg is terwijl dat niet zo is :S
 

Pagina: 1 2 volgende »



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.