<?php
/** Upload.php - Utility functions
*
************************************************************************
* � Sloppycode.net All rights reserved.
*
* This is a standard copyright header for all source code appearing
* at sloppycode.net. This application/class/script may be redistributed,
* as long as the above copyright remains intact.
* Comments to sloppycode@sloppycode.net
************************************************************************
* Upload class - wrapper for uploading files. See accompanying docs
*
* @author C.Small <sloppycode@sloppycode.net>
*
* More features and better error checking will come in the next version
*
*
*** Revision History
* 2-Jun-2009 B.Dutton Removed radweb_include for auto load
* 30-Jun-2003 Dutton Checking into RADWEB 6.0
* 04-Jan-2000 Dutton Initial Coding
*
*/
class Upload {
/**
*
* @type var
*/
private $maxupload_size;
/**
*
* @type var
*/
private $post_files;
/**
*
* @type var
*/
private $errors;
/**
* function to ...
* @param $i Desc
* @returns var
* @public
*/
function __construct ( ) {
global $_FILES;
$this->post_files = $_FILES;
$this->isPosted = false;
}
/**
* function to ...
* @param $i Desc
* @param $i Desc
* @param $i Desc
* @param $i Desc
* @returns var
* @public
*/
function save ( $directory, $field, $overwrite, $mode=0777 ) {
$this->isPosted = true;
if ( $this->post_files[$field]['size'] < $this->maxupload_size &&
$this->post_files[$field]['size'] >0 ) {
$noerrors = true;
$this->isPosted = true;
// Get names
$tempName = $this->post_files[$field]['tmp_name'];
$file = $this->post_files[$field]['name'];
$all = $directory . "/" . $file;
// Copy to directory
if ( file_exists ( $all ) ) {
if ( $overwrite ) {
@unlink ( $all ) || $noerrors=false; $this->errors = "Upload class save error: unable to overwrite ".$all."<BR>";
@copy ( $tempName,$all ) || $noerrors=false; $this->errors .= "Upload class save error: unable to copy to ".$all."<BR>";
@chmod ( $all,$mode ) || $ernoerrorsrors=false; $this->errors .= "Upload class save error: unable to change permissions for: ".$all."<BR>";
}
} else {
@copy ( $tempName,$all ) || $noerrors=false;$this->errors = "Upload class save error: unable to copy to ".$all."<BR>";
@chmod ( $all,$mode ) || $noerrors=false;$this->errors .= "Upload class save error: unable to change permissions for: ".$all."<BR>";
}
return $noerrors;
}
else if ( $this->post_files[$field]['size'] > $this->maxupload_size ) {
$this->errors = "File size exceeds maximum file size of ".$this->maxuploadsize." bytes";
return false;
}
else if ( $this->post_files[$field]['size'] == 0 ) {
$this->errors = "File size is 0 bytes";
return false;
}
}
/**
* function to ...
* @param $i Desc
* @param $i Desc
* @param $i Desc
* @param $i Desc
* @param $i Desc
* @returns var
* @public
*/
function saveAs ( $filename, $directory, $field, $overwrite, $mode=0777 ) {
$this->isPosted = true;
if ( $this->post_files[$field]['size'] < $this->maxupload_size &&
$this->post_files[$field]['size'] > 0 ) {
$noerrors = true;
// Get names
$tempName = $this->post_files[$field]['tmp_name'];
$all = $directory."/".$filename;
// Copy to directory
if ( file_exists ( $all ) ) {
if ( $overwrite ) {
@unlink ( $all ) || $noerrors=false; $this->errors = "Upload class saveas error: unable to overwrite ".$all."<BR>";
@copy ( $tempName,$all ) || $noerrors=false; $this->errors .= "Upload class saveas error: unable to copy to ".$all."<BR>";
@chmod ( $all,$mode ) || $noerrors=false; $this->errors .= "Upload class saveas error: unable to copy to".$all."<BR>";
}
}
else {
@copy ( $tempName,$all ) || $noerrors=false; $this->errors = "Upload class saveas error: unable to copy to ".$all."<BR>";
@chmod ( $all,$mode ) || $noerrors=false; $this->errors .= "Upload class saveas error: unable to change permissions for: ".$all."<BR>";
}
return $noerrors;
}
else if ( $this->post_files[$field]['size'] > $this->maxupload_size ) {
$this->errors = "File size exceeds maximum file size of ".$this->maxuploadsize." bytes";
return false;
}
else if ( $this->post_files[$field]['size'] == 0 ) {
$this->errors = "File size is 0 bytes";
return false;
}
}
/**
* function to ...
* @param $i Desc
* @returns var
* @public
*/
function getFilename ( $field ) {
return $this->post_files[$field]['name'];
}
/**
* function to ...
* @param $i Desc
* @returns var
* @public
*/
function getFileMimeType ( $field ) {
return $this->post_files[$field]['type'];
}
/**
* function to ...
* @param $i Desc
* @returns var
* @public
*/
function getFileSize ( $field ) {
return $this->post_files[$field]['size'];
}
/**
* function to ...
* @param $i Desc
* @returns var
* @public
*/
function deleteFile ( $field ) {
$all = $this->post_files[$field]['name'];
if ( file_exists ( $all ) ) @unlink ( $all );
}
}
|