Ich schon:
PHP-Code:
<?php
/**
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
**/
/**
* This class helps to upload a file to a special directory.
*
* @author Gostner, Christoph
* @since 2004-??-?? (summer)
* @copyright 2004
* @version 0.02
**/
class Upload
{
var $target;
var $filecopy;
var $filedata;
var $arrReport;
var $maxSize;
var $bcopy;
/**
* The constructor sets all attributes.
*
* @param $dir The file's target.
* @param $uploadfile The file to upload/to move to the directory.
* @param $maxSize The maximum size of the file.
**/
function Upload($dir,$uploadfile,$maxSize)
{
$this->bcopy = TRUE;
$this->target = $dir;
$this->filecopy = $uploadfile;
$this->arrReport = array();
$this->maxSize = $maxSize;
foreach( $GLOBALS[HTTP_POST_FILES] as $key => $val )
{
$this->filedata = $val;
}
}
/**
* Controls
* - If the file in the directory doesn't exist.
* - If the file isn't bigger then the maximum size and not zero.
* - That the file is no backup file (ends with '~').
* - That the file's target is writeable.
*
* If no case is true the file will be copied. Else some error messages
* are printed.
**/
function copy()
{
$path = $this->target."/".$this->filedata[name];
if ( file_exists($path) )
{
echo "Error: File already existes!<br>\n";
$this->bcopy = FALSE;
}
if ( $this->filedata[size] > $this->maxSize || $this->filedata[size] == 0)
{
echo "Error: File to big or empty!<br>\n";
$this->bcopy = FALSE;
}
if ( substr( $this->filedata[name], strlen($this->filedata[name])-1,strlen($this->filedata[name])-1 ) == "~" )
{
echo "Error: File seems to be a backup-file!<br>\n";
$this->bcopy = FALSE;
}
if ( !is_writable($this->target) )
{
echo "Error: Directory is not writeable!<br>\n";
$this->bcopy = FALSE;
}
if ( $this->bcopy )
{
copy($this->filecopy,$path);
$this->arrReport = array( "Name" => $this->filedata[name],
"Size" => $this->filedata[size] );
}
}
/**
* If the file was copied this method prints the file's name and size.
**/
function getResults()
{
if ( $this->bcopy )
{
foreach( $this->arrReport as $key => $val)
{
echo $key . ": ".$val."<br>\n";
}
}
}
}
?>
Ok, ist nicht ganz ausgereift, und du musst noch die Ueberpruefung hinzufuegen, dass wirklich nur Bilder hochgeladen werden koennen. Sollte aber helfen.
(Verzeih mein miserables English).
Lesezeichen