Scripts
Upload Class
Dit is een erg hippe (of niet) uploadclass die zowat alles kan. Helaas pindakaas moeten jullie er wel nog een programmatje rondschrijven, maar dat kunnen jullie wel, niet ? Veel plezier er mee :)
upload-class
<?php
/********************
CLASS UPLOAD
*********************/
class upload {
// Zet variablen vast
var $maxkb = "2000"; // Het maximum aantal kilobytes dat het bestand mag bevatten
var $directory = "uploads/"; // De map waar bestanden naar worden geupload
var $extensies = ".jpg|.bmp|.gif|.png|.ico"; // De toegelaten extensies, met punt erbij en gescheiden door een pipe (|), star (*) om alles toe te laten
// functie changename, zal de naam veranderen als de naam van het bestand al bestaat
function changename($bestand) {
// De naam veranderen
if(file_exists($this->directory.$bestand)) { // als het bestand bestaat
$bestand2=$bestand; // een extra backup maken
$i=0; // geef dan een teller
while(file_exists($this->directory.$bestand)) { // zolang er geen goede naam is gevonden
$bestand=$i." ".$bestand2; // geef het bestand een nieuwe naam
$i++; // de teller updaten, anders krijgen we iets on-eind-igs.
}
return $bestand; // geef het resultaat door
}
else { // als er nog geen bestand met die naam bestaat
return $bestand; // geef dan de originele naam weer
}
}
// functie upload, load alle bestanden op
function fileupload($bestand,$locatie) {
if(is_uploaded_file($bestand['tmp_name'])) { // Is het bestand upgeload ?
if(move_uploaded_file($bestand['tmp_name'],$this->directory.$locatie."/".$this->changename($bestand['name']))) { // Is het bestand verplaatst ?
return true; // Geef true weer, het bestand is verplaatst
}
else {
return false; // Geef false weer, het bestand is niet verplaatst
}
}
else {
return false; // Geef false weer, het bestand is niet upgeload
}
}
// functie k(ilo)b(ytes)to( )b(ytes), zet megabytes om in bytes
function kbtob($waarde) {
$bytes = $waarde*1024; // zet om in kilobytes
$bytes = ceil($bytes);
return $bytes; // geef de afgeronde waarde weer
}
// functie checksize, controleer de grootte van het bestand
function checksize($bestand) {
if($bestand['size'] < $this->kbtob($this->maxkb)) { // Als het bestand kleiner is dan de maximum grootte
return true; // Geef dan true weer
}
else { // en anders
return false; // Geef false weer
}
}
// functie checkext, controleer de extesie van het bestand
function checkext($bestand) {
if($this->extensies == "*") { // als alles is toegelaten
return true; // geef dan true weer
}
else { // als niet alles is toegelaten
if(eregi("((".$this->extensies.")$)",strtolower($bestand['name']))) { // als de extensie overeenkomt met de opgegeven mogelijkheden
return true; // geef dan true weer
}
else { // Komt de opgegeven extensie niet overeen
return false; // Geef dan false weer
}
}
}
// functie loadup, main functie, laad alles mooi op in de map
function loadup($bestand,$locatie) {
if($this->checksize($bestand) == true) { // controleer de grootte van het bestand
if($this->checkext($bestand) == true) { // controleer de extensie van het bestand
if($this->fileupload($bestand,$locatie) == true) {
echo "Het bestand ".$bestand['name']." is succesvol upgeload.<br>";
}
else {
echo "Het bestand ".$bestand['name']." is niet correct upgeload.<br>";
}
}
else { // De extensie is niet correct
echo "Het type bestand dat je probeerde op te loaden is niet toegelaten. (".$bestand['name'].")<br>"; // Geef een error
}
}
else { // Het bestand is te groot
echo "Het bestand dat je probeerde op te loaden is te groot.(".$bestand['name'].")<br>"; // Geef error
}
}
}
/********************
CLASS dirandfiles
*********************/
class dirandfiles extends upload {
// function replace - Verplaats bestand (of - rename bestand)
function replace($oudenaam, $nieuwenaam) {
if(file_exists($this->directory.$oudenaam)) { // als de oude naam bestaat, ga door
if(!file_exists($this->directory.$nieuwenaam)) { // als de nieuwe naam nog niet bestaat, ga door
if(copy($this->directory.$oudenaam,$this->directory.$nieuwenaam)) { // als het succesvol is gecopieerd
unlink($this->directory.$oudenaam); // verwijder dan de nieuwe naam
}
else { // als het niet opnieuw is genaamt
return false; // geef dan false weer
}
}
else { // als de nieuwe naam al bestaat
return false; // geef dan false weer
}
}
else { // als de oude map niet bestaat
return false; // geef dan false weer
}
}
// function rename_dir - geef een map een nieuwe naam
function rename_dir($oudenaam, $nieuwenaam, $locatie) {
if(is_dir($this->directory.$locatie.$oudenaam)) { // als de oude naam bestaat
if(!is_dir($this->directory.$locatie.$nieuwenaam)) { // als de nieuwe naam nog niet bestaat
if(rename($this->directory.$locatie.$oudenaam, $this->directory.$locatie.$nieuwenaam)) { // geef de map een nieuwe naam
return true; // geef dan true weer
}
else { // als de map niet is gerenamed
return false; // geef dan false weer
}
}
else { // als de nieuwe map al bestaat
return false; // geef dan false weer
}
}
else { // als de oude naam niet bestaat
return false; // geef dan false weer.
}
}
// create_dir - maak een map aan in een map
function create_dir($naam,$locatie) {
if(!is_dir($naam)) { // als de map nog niet bestaat
if(mkdir($this->directory.$locatie.$naam)) { // Als de map succesvol is gemaakt
return true; // geef dan true weer
}
else { // als de map niet correct is gemaakt
return false; // geef dan false weer
}
}
else { // als de map al bestaat
return false; // Geef dan false weer
}
}
// functie delete_file - verwijder een file of map
function delete_file($bestand) {
if(file_exists($this->directory.$bestand)) { // als het bestand bestaat (je kunt niets verwijderen dat niet bestaat)
if(unlink($this->directory.$bestand)) {
return true;
}
else {
return false;
}
}
else {
return false;
}
}
// Functie delete_dir - verwijder een map
function delete_dir($dir) {
if(is_dir($this->directory.$dir)) {
$handle=opendir($this->directory.$dir);
while (false!==($file = readdir($handle))) {
if ($file != "." && $file != "..") {
unlink($this->directory.$dir."/".$file);
}
}
closedir($handle);
rmdir($this->directory.$dir);
}
}
}
?>
Reacties
0