Uploader class

Door Niels K, 17 jaar geleden, 9.057x bekeken

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

PHP script bestanden

  1. upload_class.php
  2. use.php

 

Er zijn 18 reacties op 'Uploader class'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Joren de Wit
Joren de Wit
17 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 K
Niels K
17 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.
Jan geen
Jan geen
17 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
17 jaar geleden
 
0 +1 -0 -1
@rik,

Hoe bedoel je? Via try catch ?
Jan geen
Jan geen
17 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 K
Niels K
17 jaar geleden
 
0 +1 -0 -1
Ok. Dank voor je reactie, ik ga proberen het verbeteren
Pim -
Pim -
17 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 K
Niels K
17 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 -
17 jaar geleden
 
0 +1 -0 -1
Gewoon, gebruiksgemak.
Kan je met een factory method implementeren.
EDIT: Desnoods een factory...
Jan geen
Jan geen
17 jaar geleden
 
0 +1 -0 -1
Heb je daar een voorbeeld van?
P Lekensteyn
P Lekensteyn
17 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
17 jaar geleden
 
0 +1 -0 -1
leg dat is een uit peter?


17 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 K
Niels K
17 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
17 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.
Jan geen
Jan geen
17 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 K
Niels K
17 jaar geleden
 
0 +1 -0 -1
Ok ik ga er naar kijken

@Peter,

Ja inderdaad. vandaar dat ik ook ext check erin gebouwd hebt.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Pim -
Pim -
17 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.

Inhoudsopgave

  1. upload_class.php
  2. use.php

Labels

Navigatie

 
 

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.