Bestand uploaden maar daarna het "path" in de database.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kaulo Banaan

Kaulo Banaan

18/07/2016 08:04:33
Quote Anchor link
Ik ben bezig met een systeem waarbij je een zip moet uploaden en een "Tumbnail" van een bepaald formaat. Dit voorledig in de database opslaan lijkt mij niet echt handig. Is het mogelijk om het path te fetchen en dan op te slaan in de database met de column naam item_url.

En hoe kan ik instellen dat ze persee een bepaalde afmeting moeten uploaden?

En hoe houd ik rekening dat ze niet een shell uploaden...

Toevoeging op 18/07/2016 08:07:06:

Edit: Size en formaat van het bestand zou ook fijn zijn.
 
PHP hulp

PHP hulp

26/11/2024 02:56:33
 
Ramon van Dongen

Ramon van Dongen

18/07/2016 10:07:35
Quote Anchor link
Quote:
Is het mogelijk om het path te fetchen en dan op te slaan in de database met de column naam item_url
Dat is zeker mogelijk en inderdaad veel meer aan te raden dan alles in de database zetten.

Quote:
En hoe kan ik instellen dat ze persee een bepaalde afmeting moeten uploaden?
Kijk eens wat er in $_FILES staat na het uploaden. Dit geldt ook voor je shell; door naar het bestandsformaat etc te kijken ben je al een heel eind op weg.

http://php.net/manual/en/features.file-upload.php


Toevoeging op 18/07/2016 10:08:22:

ps: je kunt natuurlijk ook minder de nadruk leggen op een exact bepaald formaat, maar gewoon na het uploaden met een script het aangeleverde plaatje aanpassen naar hoe jij het wil hebben.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

18/07/2016 11:35:04
Quote Anchor link
In aanvulling op Ramon zou ik zeker het bestand controleren op het mime-type en niet (alleen) op de extensie van de bestandsnaam of filename in geval van documenten of afbeeldingen.

Voor zip bestanden ligt het helaas een stuk ingewikkelder. Veel hangt af van hetgeen er met de zip bestanden gaat gebeuren. Hierover schrijf je verder niets.

Laat je de zips uitpakken op je server om vervolgens met de uitgepakte bestanden iets te doen? Hier zou ik dus heel goed controleren of je bestanden krijgt die je verwacht en ook deze bestanden kun je weer controleren op mime types. Ga geen scriptbestanden uitvoeren zoals bijv. .php bestanden die geüpload zijn (middels een zip bestand). Gaan anderen de zip bestanden downloaden dan zou een waarschuwing wel op zijn plaats zijn dat er mogelijk virussen in kunnen zitten.

Er zijn ook nog virusscanners beschikbaar voor webservers zoals ClamAV.
Gewijzigd op 18/07/2016 11:45:11 door Frank Nietbelangrijk
 
- Ariën  -
Beheerder

- Ariën -

18/07/2016 11:54:30
Quote Anchor link
Een mooie extra controle of een bestand een afbeelding is, is de getimagesize() functie. Deze moet een geldigewaarde geven bij het uitlezen van het formaat. Als deze er niet ins, dan is de foto corrupt of wordt er een bestand geüpload die geen foto is.
 
Thomas van den Heuvel

Thomas van den Heuvel

18/07/2016 12:24:13
Quote Anchor link
Quote:
In aanvulling op Ramon zou ik zeker het bestand controleren op het mime-type en niet (alleen) op de extensie van de bestandsnaam of filename in geval van documenten of afbeeldingen.

Ik geloof dat de meeste browsers het MIME-type van een bestand juist baseren op de extensie, dus dat biedt weinig soelaas. Tenzij je hier een aparte module voor geinstalleerd hebt (mime_magic oid, aanname: Apache) blijft het gissen met wat voor bestanden je te maken hebt.

Het loont natuurlijk wel de moeite om te blijven controleren op extensie, ook kan een functie als getimagesize() uitkomst bieden om met enige zekerheid vast te kunnen stellen dat je met een afbeelding van doen hebt.

Wat je natuurlijk ook altijd kunt doen is deze bestanden buiten de webdirectory opslaan, zodat deze niet rechtstreeks van buitenaf benaderbaar zijn.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

18/07/2016 12:30:35
Quote Anchor link
Thomas van den Heuvel op 18/07/2016 12:24:13:
Ik geloof dat de meeste browsers het MIME-type van een bestand juist baseren op de extensie, dus dat biedt weinig soelaas. Tenzij je hier een aparte module voor geinstalleerd hebt (mime_magic oid, aanname: Apache) blijft het gissen met wat voor bestanden je te maken hebt.


Dit heeft niets met een browser te maken Thomas. Gebruiker stuurt bestand naar server, server checkt het mimetype van het bestand dat op de server staat. Hier komt geen browser bij te pas.

http://php.net/manual/en/function.mime-content-type.php
 
Thomas van den Heuvel

Thomas van den Heuvel

18/07/2016 13:08:09
Quote Anchor link
Hm, dat lijkt meer te doen dan enkel controleren op extensie... mits die functie beschikbaar is. Deze is waarschijnlijk afhankelijk van de beschikbaarheid van een of meer modules.

Ik had het trouwens over $_FILES['file']['type'], die niet erg betrouwbaar is.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

18/07/2016 13:15:46
Quote Anchor link
Thomas van den Heuvel op 18/07/2016 13:08:09:
Ik had het trouwens over $_FILES['file']['type'], die niet erg betrouwbaar is.


Duidelijk Thomas. Dit zegt php.net er over:
Quote:
$_FILES['userfile']['type']
The mime type of the file, if the browser provided this information. An example would be "image/gif". This mime type is however not checked on the PHP side and therefore don't take its value for granted.

(bron)

Je hebt dus helemaal gelijk :-)
 
Thomas van den Heuvel

Thomas van den Heuvel

18/07/2016 13:24:04
Quote Anchor link
Indien je de beschikking hebt over de functie mime_content_type() dan kan dit dus een aanvulling zijn om je er (verder) van te verzekeren dat een bestand met extensie X ook echt een bestand van type X 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.