Location: PHPKode > scripts > EZ Framework > ez-framework/file_handle.php
<?php
# Version 1.0

class file_handle
{
	var $upload_dir = NULL;
	var $use_log = '';
	
	##-----------------------------------------------------------------------------##
	##                 				 Show Use Log			       			       ##
	##-----------------------------------------------------------------------------##
	
	function showLog()
	{
		$this->use_log .= "showLog()"."<br />\n";
		return $this->use_log;
	}

	##-----------------------------------------------------------------------------##
	##                 				 Add Log Entry				   			       ##
	##-----------------------------------------------------------------------------##

	function editLog( $content = NULL )
	{
		$this->use_log .= ' ' . $content . "<br />\n";
	}
	
	##-----------------------------------------------------------------------------##
	##                 			 Set Upload Directory		       			       ##
	##-----------------------------------------------------------------------------##
	
	function setUploadDir ( $dir_path = NULL )
	{
		$this->use_log .= 'setUploadDir:';
		if( file_exists( $dir_path ) && is_dir( $dir_path ) )
		{
			$this->upload_dir = $dir_path;
			file_handle::editLog("to [$dir_path] -> success");
		} else // Directory specified was not a directory or could not be found
		{
			file_handle::editLog("to [$dir_path] -> failed");
			return false;
		} 
		
	}
	
	##-----------------------------------------------------------------------------##
	##                   			 Rename FIle			       		           ##
	##-----------------------------------------------------------------------------##
	
	function renameFile( $file_path = NULL, $file_path_new = NULL )
	{
		$this->use_log .= 'renameFile:';
		if( file_exists( $file_path ) && is_file( $file_path ) )
		{
			if( rename( $file_path, $file_path_new ) )
			{
				file_handle::editLog("from [$file_path] to [$file_path_new] -> success");
				return true;
			}
			else // Could not rename the file
			{
				file_handle::editLog("from [$file_path] to [$file_path_new] -> fail (Could not rename the file)");
				return false;
			}
		} else // File specified was not a file or could not be found
		{
			file_handle::editLog("from [$file_path] to [$file_path_new] -> fail (File specified was not a file or could not be found)");
			return false;
		}
	}
	
	##-----------------------------------------------------------------------------##
	##                   			 Rename Directory		       		           ##
	##-----------------------------------------------------------------------------##
	
	function renameDir( $dir_path = NULL, $dir_path_new = NULL )
	{
		$this->use_log .= 'renameDir:';
		if( file_exists( $dir_path ) && is_dir( $dir_path ) )
		{
			if( rename( $dir_path, $dir_path_new ) )
			{
				file_handle::editLog("from [$dir_path] to [$dir_path_new] -> success");
				return true;
			}
			else // Could not rename the file
			{
				file_handle::editLog("from [$dir_path] to [$dir_path_new] -> fail (Could not rename the directory)");
				return false;
			}
		} else // File specified was not a file or could not be found
		{
			file_handle::editLog("from [$dir_path] to [$dir_path_new] -> fail (Directory specified was not a directory or could not be found)");
			return false;
		}
	}
	
	##-----------------------------------------------------------------------------##
	##                   			 Remove File From Server       		           ##
	##-----------------------------------------------------------------------------##
	
	function removeFile( $file_path = NULL )
	{
		$this->use_log .= 'removeFile:';
		if( file_exists( $file_path ) && is_file( $file_path ) )
		{
			if( unlink( $file_path ) )
			{
				file_handle::editLog("[$file_path] -> success");
				return true;
			}
			else // Unable to remove the file
			{
				file_handle::editLog("[$file_path] -> fail (Unable to remove the file)");
				return false;
			}
		}else // File specified was not a file or could not be found
		{
			file_handle::editLog("[$file_path] -> fail (File specified was not a file or could not be found)");
			return false;
		}
	}
	
	##-----------------------------------------------------------------------------##
	##                   				Remove Directory	       		           ##
	##-----------------------------------------------------------------------------##
	
	function removeDir( $dir_path )
	{
		$this->use_log .= 'removeDir:';
		if( file_exists( $dir_path ) && is_dir( $dir_path ) )
		{
			if( rmdir( $dir_path ) )
			{
				file_handle::editLog("[$dir_path] -> success");
				return true;
			} else
			{
				file_handle::editLog("[$dir_path] -> fail (could not remove dir, check permissions)");
				return false;
			}
		} else
		{
			file_handle::editLog("[$dir_path] -> fail (Directory specified was not a directory or could not be found)");
			return false;
		}
	}
	
	##-----------------------------------------------------------------------------##
	##                   			 Creat Directory		       		           ##
	##-----------------------------------------------------------------------------##
	
	function createDir( $dir_path, $cmode = 0755 )
	{
		$this->use_log .= 'createDir:';
		if( !( file_exists( $dir_path ) ) && !( is_dir( $dir_path ) ) )
		{
			if( mkdir( $dir_path ) )
			{
				file_handle::editLog("[$dir_path] -> success");
				@chmod( $dir_path, $cmode );
				return true;
			} else
			{
				file_handle::editLog("[$dir_path] -> fail (could not make dir, check permissions)");
				return false;
			}
		} else
		{
			file_handle::editLog("[$dir_path] -> fail (Directory already exists)");
			return false;
		}
	}
	
	##-----------------------------------------------------------------------------##
	##                   			 Upload file to server       		           ##
	##-----------------------------------------------------------------------------##

	function uploadFile( $name = NULL, $newname = NULL )
	{
		$this->use_log .= 'uploadFile:';
		if( is_uploaded_file( $_FILES[$name]['tmp_name'] ) )
			if( move_uploaded_file( $_FILES[$name]['tmp_name'], $this->upload_dir.'/'.$newname ) )
			{
				file_handle::editLog("upload [$name] move to [{$this->upload_dir}] -> success");
				return true;
			}
			else
			{
				file_handle::editLog("upload [$name] move to [{$this->upload_dir}] -> fail (Could not move the file)");
				return false;
			}
		else
		{
			file_handle::editLog("upload [$name] move to [{$this->upload_dir}] -> fail (File was not an uploaded file)");
			return false;
		}
	}
	
	##-----------------------------------------------------------------------------##
	##                 			     File types		       	     		           ##
	##-----------------------------------------------------------------------------##
	
	function fileType( $extension = NULL )
	{
		file_handle::editLog("fileType: [$extension]");
		$mime_type = 
		array (
			'ai' => 'application/postscript',
			'aif' => 'audio/x-aiff',
			'aifc' => 'audio/x-aiff',
			'aiff' => 'audio/x-aiff',
			'asc' => 'text/plain',
			'au' => 'audio/basic',
			'avi' => 'video/x-msvideo',
			'bcpio' => 'application/x-bcpio',
			'bin' => 'application/octet-stream',
			'bmp' => 'image/bmp',
			'cdf' => 'application/x-netcdf',
			'cgm' => 'image/cgm',
			'class' => 'application/octet-stream',
			'cpio' => 'application/x-cpio',
			'cpt' => 'application/mac-compactpro',
			'csh' => 'application/x-csh',
			'css' => 'text/css',
			'dcr' => 'application/x-director',
			'dir' => 'application/x-director',
			'djv' => 'image/vnd.djvu',
			'djvu' => 'image/vnd.djvu',
			'dll' => 'application/octet-stream',
			'dms' => 'application/octet-stream',
			'doc' => 'application/msword',
			'dtd' => 'application/xml-dtd',
			'dvi' => 'application/x-dvi',
			'dxr' => 'application/x-director',
			'eps' => 'application/postscript',
			'etx' => 'text/x-setext',
			'exe' => 'application/octet-stream',
			'ez' => 'application/andrew-inset',
			'gif' => 'image/gif',
			'gram' => 'application/srgs',
			'grxml' => 'application/srgs+xml',
			'gtar' => 'application/x-gtar',
			'gzip' => 'application/x-gzip',
			'hdf' => 'application/x-hdf',
			'hqx' => 'application/mac-binhex40',
			'htm' => 'text/html',
			'html' => 'text/html',
			'ice' => 'x-conference/x-cooltalk',
			'ico' => 'image/x-icon',
			'ics' => 'text/calendar',
			'ief' => 'image/ief',
			'ifb' => 'text/calendar',
			'iges' => 'model/iges',
			'igs' => 'model/iges',
			'jpe' => 'image/jpeg',
			'jpeg' => 'image/jpeg',
			'jpg' => 'image/jpeg',
			'js' => 'application/x-javascript',
			'kar' => 'audio/midi',
			'latex' => 'application/x-latex',
			'lha' => 'application/octet-stream',
			'lzh' => 'application/octet-stream',
			'm3u' => 'audio/x-mpegurl',
			'man' => 'application/x-troff-man',
			'mathml' => 'application/mathml+xml',
			'me' => 'application/x-troff-me',
			'mesh' => 'model/mesh',
			'mid' => 'audio/midi',
			'midi' => 'audio/midi',
			'mov' => 'video/quicktime',
			'movie' => 'video/x-sgi-movie',
			'mp2' => 'audio/mpeg',
			'mp3' => 'audio/mpeg',
			'mpe' => 'video/mpeg',
			'mpeg' => 'video/mpeg',
			'mpg' => 'video/mpeg',
			'mpga' => 'audio/mpeg',
			'ms' => 'application/x-troff-ms',
			'msh' => 'model/mesh',
			'mxu' => 'video/vnd.mpegurl',
			'nc' => 'application/x-netcdf',
			'oda' => 'application/oda',
			'ogg' => 'application/ogg',
			'pbm' => 'image/x-portable-bitmap',
			'pdb' => 'chemical/x-pdb',
			'pdf' => 'application/pdf',
			'pgm' => 'image/x-portable-graymap',
			'pgn' => 'application/x-chess-pgn',
			'png' => 'image/png',
			'pnm' => 'image/x-portable-anymap',
			'ppm' => 'image/x-portable-pixmap',
			'ppt' => 'application/vnd.ms-powerpoint',
			'ps' => 'application/postscript',
			'qt' => 'video/quicktime',
			'ra' => 'audio/x-realaudio',
			'ram' => 'audio/x-pn-realaudio',
			'ras' => 'image/x-cmu-raster',
			'rdf' => 'application/rdf+xml',
			'rgb' => 'image/x-rgb',
			'rm' => 'audio/x-pn-realaudio',
			'roff' => 'application/x-troff',
			'rpm' => 'audio/x-pn-realaudio-plugin',
			'rtf' => 'text/rtf',
			'rtx' => 'text/richtext',
			'sgm' => 'text/sgml',
			'sgml' => 'text/sgml',
			'sh' => 'application/x-sh',
			'shar' => 'application/x-shar',
			'silo' => 'model/mesh',
			'sit' => 'application/x-stuffit',
			'skd' => 'application/x-koan',
			'skm' => 'application/x-koan',
			'skp' => 'application/x-koan',
			'skt' => 'application/x-koan',
			'smi' => 'application/smil',
			'smil' => 'application/smil',
			'snd' => 'audio/basic',
			'so' => 'application/octet-stream',
			'spl' => 'application/x-futuresplash',
			'src' => 'application/x-wais-source',
			'sv4cpio' => 'application/x-sv4cpio',
			'sv4crc' => 'application/x-sv4crc',
			'svg' => 'image/svg+xml',
			'swf' => 'application/x-shockwave-flash',
			't' => 'application/x-troff',
			'tar' => 'application/x-tar',
			'tcl' => 'application/x-tcl',
			'tex' => 'application/x-tex',
			'texi' => 'application/x-texinfo',
			'texinfo' => 'application/x-texinfo',
			'tif' => 'image/tiff',
			'tiff' => 'image/tiff',
			'tr' => 'application/x-troff',
			'tsv' => 'text/tab-separated-values',
			'txt' => 'text/plain',
			'ustar' => 'application/x-ustar',
			'vcd' => 'application/x-cdlink',
			'vrml' => 'model/vrml',
			'vxml' => 'application/voicexml+xml',
			'wav' => 'audio/x-wav',
			'wbmp' => 'image/vnd.wap.wbmp',
			'wbxml' => 'application/vnd.wap.wbxml',
			'wml' => 'text/vnd.wap.wml',
			'wmlc' => 'application/vnd.wap.wmlc',
			'wmls' => 'text/vnd.wap.wmlscript',
			'wmlsc' => 'application/vnd.wap.wmlscriptc',
			'wrl' => 'model/vrml',
			'xbm' => 'image/x-xbitmap',
			'xht' => 'application/xhtml+xml',
			'xhtml' => 'application/xhtml+xml',
			'xls' => 'application/vnd.ms-excel',
			'xml' => 'application/xml',
			'xpm' => 'image/x-xpixmap',
			'xsl' => 'application/xml',
			'xslt' => 'application/xslt+xml',
			'xwd' => 'image/x-xwindowdump',
			'xyz' => 'chemical/x-xyz',
			'zip' => 'application/zip'
		);
		if( isset( $mime_type[$extension] ) )
			return $mime_type[$extension];
		else
			return $mime_type['exe'];		
	}
	
	##-----------------------------------------------------------------------------##
	##                 			 Download File From Server       		           ##
	##-----------------------------------------------------------------------------##
	
	function downloadFile( $file_path  = NULL )
	{
		$this->use_log .= 'downloadFile:';
		if( file_exists( $file_path ) && is_file( $file_path ) )
		{
			header( 'Content-type: ' . file_handle :: getFileType( $file_path ) );
			header( "Content-Disposition: attachment; filename={$file_path}" );
			readfile( $file_name );
			file_handle::editLog("[$file_path] -> success");
			return true;
		} else
		{
			file_handle::editLog("[$file_path] -> fail (file not found or is not a file)");
			return false;
		}
	}
	
	##-----------------------------------------------------------------------------##
	##                  			 Get File Extension   	    		           ##
	##-----------------------------------------------------------------------------##
	
	function getFileExtension( $file_path = NULL )
	{
		$this->use_log .= 'getFileExtension:';
		if( $file_path )
		{
			file_handle::editLog("[$file_path] -> success");
			return strtolower( substr( strrchr( $file_path,"." ),1 ) );
		} else
		{
			file_handle::editLog("[$file_path] -> fail (file path not set)");
			return false;
		}
	}
	
	##-----------------------------------------------------------------------------##
	##                  			 Get File Type		   	    		           ##
	##-----------------------------------------------------------------------------##
	
	function getFileType( $file_path = NULL )
	{
		$this->use_log .= 'getFileType:';
		if( $file_path )
		{
			file_handle::editLog("[$file_path] -> success");
			return file_handle :: fileType( file_handle :: getFileExtension( $file_path ) );
		} else
		{
			file_handle::editLog("[$file_path] -> fail (file path not set)");
			return false;
		}
	}
}
?>
Return current item: EZ Framework