FileUpload Class (Version 1.0)
Auteur: Gerard - 08 april 2006 - 06:16 - Gekeurd door: Maarten - Hits: 17922 - Aantal punten: 5.00 (4 stemmen)
update
Op dit moment is er een nieuwe versie van de class beschikbaar.
Deze klasse heb ik in 1 nachtje geschreven omdat ik vond dat de huidige klassen welke al op sitemasters.be stonden, niet toereikend genoeg waren en al helemaal niet OOP
Ik deel deze klasse puur uit de goedheid van mijn (al dan kleine) hart. Opmerkingen over mijn codeerstijl etc mogen naar mij gestuurd worden in pm. Opbeurende verhalen mogen ook via die weg naar mij toekomen. Als commentaar op het script wens ik dus alleen maar opbouwende kritiek over de code zelf of de suggesties die je zelf hebt.
Mochten er veel op/aanmerkingen komen dan zal ik mijn best doen om jullie tegemoet te komen met een update, aaight?
Opmerkingen
De getErrors() functie zal false returnen wanneer er geen errors voor zijn gekomen, hier kan je dus op controleren.
Je kan een array van MIME-Types meegeven aan een extensie.
Wanneer je een bestand upload met de naam "filename.JPG" zal deze gewoon goedgekeurd worden, de extensie is dus case-insensetive.
Ik vertrouw erop dat je geen stomme dingen probeert zoals de klasse instellen voor een enkele file en er 3 gaat uploaden, nogal logisch dat het dan niet goed gaat
|
Code: |
De klasse is te downloaden via onderstaande link. Hieronder geef ik enkele voorbeelden van hoe deze klasse toegepast kan worden.
Voorbeeld 1: één bestand uploaden
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
require_once 'class/fileupload.class.php';
$oFile = new FileUpload($_FILES['bestand']);
$oFile->addFileType('gif', 'image/gif');
$oFile->addFileType('jpg', array('image/jpeg', 'image/pjpeg'));
$oFile->addFileType('jpeg', array('image/jpeg', 'image/pjpeg'));
$oFile->addFileType('png', 'image/png');
$oFile->addFileType('rar', 'application/x-download');
$oFile->moveFiles('uploads');
echo '<pre>'.var_export($oFile->getErrors(), true).'</pre>';
echo '<pre>'.var_export($oFile->getUploaded(), true).'</pre>';
}
?>
<form method="post" action="index.php" enctype="multipart/form-data">
<input type="file" name="bestand" id="bestand" /><br />
<input type="submit" name="upload" value="Uploaden!" />
</form>
<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { require_once 'class/fileupload.class.php'; $oFile = new FileUpload($_FILES['bestand']); $oFile->addFileType('gif', 'image/gif'); $oFile->addFileType('jpg', array('image/jpeg', 'image/pjpeg')); $oFile->addFileType('jpeg', array('image/jpeg', 'image/pjpeg')); $oFile->addFileType('png', 'image/png'); $oFile->addFileType('rar', 'application/x-download'); $oFile->moveFiles('uploads'); } ?> <form method="post" action="index.php" enctype="multipart/form-data"> <input type="file" name="bestand" id="bestand" /><br /> <input type="submit" name="upload" value="Uploaden!" /> </form>
Voorbeeld 2: meerdere files uploaden
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
require_once 'class/fileupload.class.php';
$oFile = new FileUpload($_FILES['bestand']);
$oFile->addFileType('gif', 'image/gif');
$oFile->addFileType('jpg', array('image/jpeg', 'image/pjpeg'));
$oFile->addFileType('jpeg', array('image/jpeg', 'image/pjpeg'));
$oFile->addFileType('png', 'image/png');
$oFile->addFileType('rar', 'application/x-download');
$oFile->enableMultiple(true);
$oFile->moveFiles('uploads');
echo '<pre>'.var_export($oFile->getErrors(), true).'</pre>';
echo '<pre>'.var_export($oFile->getUploaded(), true).'</pre>';
}
?>
<form method="post" action="index.php" enctype="multipart/form-data">
<input type="file" name="bestand[]" id="bestand[]" /><br />
<input type="file" name="bestand[]" id="bestand[]" /><br />
<input type="file" name="bestand[]" id="bestand[]" /><br />
<input type="file" name="bestand[]" id="bestand[]" /><br />
<input type="submit" name="upload" value="Uploaden!" />
</form>
<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { require_once 'class/fileupload.class.php'; $oFile = new FileUpload($_FILES['bestand']); $oFile->addFileType('gif', 'image/gif'); $oFile->addFileType('jpg', array('image/jpeg', 'image/pjpeg')); $oFile->addFileType('jpeg', array('image/jpeg', 'image/pjpeg')); $oFile->addFileType('png', 'image/png'); $oFile->addFileType('rar', 'application/x-download'); $oFile->enableMultiple(true); $oFile->moveFiles('uploads'); } ?> <form method="post" action="index.php" enctype="multipart/form-data"> <input type="file" name="bestand[]" id="bestand[]" /><br /> <input type="file" name="bestand[]" id="bestand[]" /><br /> <input type="file" name="bestand[]" id="bestand[]" /><br /> <input type="file" name="bestand[]" id="bestand[]" /><br /> <input type="submit" name="upload" value="Uploaden!" /> </form>
Voorbeeld 3: één file uploaden en hernoemen
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
require_once 'class/fileupload.class.php';
$oFile = new FileUpload($_FILES['bestand']);
$oFile->addFileType('gif', 'image/gif');
$oFile->addFileType('jpg', array('image/jpeg', 'image/pjpeg'));
$oFile->addFileType('jpeg', array('image/jpeg', 'image/pjpeg'));
$oFile->addFileType('png', 'image/png');
$oFile->addFileType('rar', 'application/x-download');
$oFile->setNewName($_POST['newname']);
$oFile->moveFiles('uploads');
echo '<pre>'.var_export($oFile->getErrors(), true).'</pre>';
echo '<pre>'.var_export($oFile->getUploaded(), true).'</pre>';
}
?>
<form method="post" action="index.php" enctype="multipart/form-data">
<input type="text" name="newname" id="newname"><br />
<input type="file" name="bestand" id="bestand" /><br />
<input type="submit" name="upload" value="Uploaden!" />
</form>
<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { require_once 'class/fileupload.class.php'; $oFile = new FileUpload($_FILES['bestand']); $oFile->addFileType('gif', 'image/gif'); $oFile->addFileType('jpg', array('image/jpeg', 'image/pjpeg')); $oFile->addFileType('jpeg', array('image/jpeg', 'image/pjpeg')); $oFile->addFileType('png', 'image/png'); $oFile->addFileType('rar', 'application/x-download'); $oFile->setNewName($_POST['newname']); $oFile->moveFiles('uploads'); } ?> <form method="post" action="index.php" enctype="multipart/form-data"> <input type="text" name="newname" id="newname"><br /> <input type="file" name="bestand" id="bestand" /><br /> <input type="submit" name="upload" value="Uploaden!" /> </form>
Dit kan bijvoorbeeld handig zijn wanneer je deze functie gaat gebruiken voor een avatar functie op jouw website. Je hoeft de newname dan bijvoorbeeld alleen maar in te sturen met het userid van de ingelogde user. Download code (.txt)
|
|
|
Stemmen |
Niet ingelogd. |
|