Initial commit

This commit is contained in:
Frank Schubert
2021-03-29 23:04:42 +02:00
commit 4ea4927931
3737 changed files with 709905 additions and 0 deletions
@@ -0,0 +1,87 @@
<?php
class mfUpload_TmpFile {
private $_file;
public $filename;
public $error;
public $tmp_name;
public $errormessage;
public function __construct($_file) {
if(count($_FILES[$_file])) {
$this->_file=$_FILES[$_file];
} else {
$this->errormessage="Upload not found";
return false;
}
$this->filename=$this->_file['name'];
$this->error=$this->_file['error'];
$this->tmp_name=$this->_file['tmp_name'];
if(!file_exists($this->tmp_name)) {
$this->errormessage="An error occured during file upload. Please try again.";
return false;
}
return true;
}
public function move_upload($path) {
if($path && $this->tmp_name) {
if(move_uploaded_file($this->tmp_name, $path)) {
return true;
} else {
$this->errormessage="Cannot move uploaded file to $path.";
}
}
return false;
}
public function getFileSize() {
$stat=stat($this->tmp_name);
if(is_array($stat) && count($stat)) {
return $stat[7];
}
return 0;
}
public function getFilename() {
$filename=$this->filename;
// assume filename contains whole path on users machine and cut it.
if(preg_match('#([^/\\\]+$)#',$filename,$match)) {
$filename=$match[1];
} else {
$this->errormessage="No file selected.";
return false; // if there is no filename
}
// remove potentially dangerous characters
while(strstr($filename,'..')) {
$filename=str_replace('..',".",$filename);
}
if(!strlen($filename)) {
$this->errormessage="No file selected.";
return false;
}
$filename=preg_replace('/[^a-z0-9$()+%äöüß._-]/i', '_', $filename);
$parts=explode(".",$filename);
$ext=strtolower(array_pop($parts));
if(!preg_match('/^'.MFUPLOAD_ALLOWED_EXTENSIONS.'$/i',$ext)) {
$this->errormessage="File type not allowed. Supported file types are ".ALLOWED_EXTENSIONS_STR;
return false;
}
return $filename;
}
}