Uploader class

Deze upload class gemaakt omdat ik het zat was om elke keer opnieuw upload scripts te schrijven. Deze uploader voert controles uit en load daarna de file up. In de toekomst zal ik hem nog wel verder uitbreiden met resize en watermerk en zulk soort dingetjes. Nu lekker even simpel. Ik hoop dat jullie er wat aan hebben.

Commentaar is natuurlijk altijd welkom

Gesponsorde koppelingen

BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  

PHP script bestanden

  1. upload_class.php
  2. use.php

 

19 reacties op 'Uploader class'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Joren de Wit
Joren de Wit
2 jaar geleden
 
1 +1 -0 -1
Zo op het eerste gezicht ziet het er netjes uit!

Alleen vraag ik me af waarom je de foutafhandeling op deze manier toepast en niet kiest voor (de logischere) Exceptions? Dat zou het geheel nog een stuk mooier maken...
Niels Kieviet
Niels Kieviet
2 jaar geleden
 
0 +1 -0 -1
Hoi Joren,

Allereerst dank je wel.

Over die fouten afhandeling. Ik heb voor een array gekozen omdat je bij exception direct het script afbreekt. En als de user dan de fout hersteld heeft komt er weer een fout. Ik vind het beter dat ze gelijk alle fouten zien en die tegelijk kunnen oplossen.

In mijn eigen applicatie maak ik gebruik van een eigen fouten database.
Rik geen
Rik geen
2 jaar geleden
 
0 +1 -0 -1
Dat ligt er toch maar net aan hoe je die exceptions opvangt? Verder ziet het er prima uit, goeie aanvulling.
Niels Kieviet
Niels Kieviet
2 jaar geleden
 
0 +1 -0 -1
@rik,

Hoe bedoel je? Via try catch ?
Rik geen
Rik geen
2 jaar geleden
 
0 +1 -0 -1
In upload() kan je elke functie die een exception gooit in een try catch blok zetten, vervolgens allemaal opslaan in een array en dan die array omzetten naar een string en in een nieuwe exception gooien? Heb het idee dat er betere manieren zijn maar kan die zo even niet bedenken...

Misschien dat je, als je alle fouten ineens wil tonen vanwege gebruikersgemak, je dan beter vooraf al je restricties test en pas dan de upload functie aanroept?
Niels Kieviet
Niels Kieviet
2 jaar geleden
 
0 +1 -0 -1
Ok. Dank voor je reactie, ik ga proberen het verbeteren
Pim -
Pim -
2 jaar geleden
 
0 +1 -0 -1
Hmm, weet niet of dat zo verstandig is.
Met een check functie is het toch logischer true/false terug te geven dan een exception bij een fout?

Misschien is het leuk wat standaard mime/ext'en toe te voegen voor afbeeldingen en tekst documenten ofzo?
Niels Kieviet
Niels Kieviet
2 jaar geleden
 
0 +1 -0 -1
'Hmm, weet niet of dat zo verstandig is.
Met een check functie is het toch logischer true/false terug te geven dan een exception bij een fout?'

Dat dacht ik dus ook..

'Misschien is het leuk wat standaard mime/ext'en toe te voegen voor afbeeldingen en tekst documenten ofzo?'

Hoezo? Wat heeft dat voor meerwaarde?
Pim -
Pim -
2 jaar geleden
 
0 +1 -0 -1
Gewoon, gebruiksgemak.
Kan je met een factory method implementeren.
EDIT: Desnoods een factory...
Rik geen
Rik geen
2 jaar geleden
 
0 +1 -0 -1
Heb je daar een voorbeeld van?
P Lekensteyn
P Lekensteyn
2 jaar geleden
 
0 +1 -1 -1
Ik begrijp niet waarom je zo graag $_FILES['upload']['type'] wilt controleren.
Die waarde is onbetrouwbaar.
Jaron T
Jaron T
2 jaar geleden
 
0 +1 -0 -1
leg dat is een uit peter?
Karl Karl
Karl Karl
2 jaar geleden
 
1 +1 -0 -1
Die waarde word door de browser geset, dus dat betekend dat de gebruiker die ook kan aanpassen, dat maakt het onveilig.
Niels Kieviet
Niels Kieviet
2 jaar geleden
 
0 +1 -0 -1
@peter..

Hoe wil je het dan controleren? Het MIME type dan.. Ik weet dat je het kan wijzigen daarom heb ik ook de check op extensie toegevoegd.
P Lekensteyn
P Lekensteyn
2 jaar geleden
 
1 +1 -0 -1
Met File info functies:
http://nl.php.net/manual/en/function.finfo-file.php
De extensie blijft het belangrijkste, de server bepaalt (normaal gesproken) aan de hand van de extensie wat ie moet doen.
Rik geen
Rik geen
2 jaar geleden
 
1 +1 -0 -1
misschien deze gebruiken? finfo_open(FILEINFO_MIME_TYPE), weet niet of die ook uit de $_FILES komt of dat die later opgehaald wordt...
Niels Kieviet
Niels Kieviet
2 jaar geleden
 
0 +1 -0 -1
Ok ik ga er naar kijken

@Peter,

Ja inderdaad. vandaar dat ik ook ext check erin gebouwd hebt.
Pim -
Pim -
2 jaar geleden
 
0 +1 -0 -1
Voorbeeld van zo'n factory:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
class Uploader_Factory
{
    public static function getPictureUploader($size = 0)
    {

        return new uploader(array('png', 'jpg', 'jpeg'), array('image/png', 'image/jpeg'), $size;
    }
}

?>

Verder moet je ook een size = 0 doen, dus geen groottelimiet.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Get Adobe Flash player