но почемуто этот класс
| Код | <?php
/* +--------------------------------------------- | UploadFiles.class.php | ========================================== | by tRiNEX | 2005 (c) | ========================================== | Web: http://www.trinex.ru | Email: trinex@yandex.ru +--------------------------------------------- | | > Upload Files with web-interface. | > Date started: 18 Jule, 2005 | > Filename: UploadFiles.class.php | > Version: 1.1 | +---------------------------------------------
*/
/** * Класс для загрузки файлов через веб-интерфейс. Возможности: загрузка сразу нескольких файлов, проверка по расширеню файлов, проверка по размеру, проверка существования одноименного файла, выставление прав доступа. * */ Class Upload {
/** * Массив имен полей в html форме. * * @var array of string */ var $Files = array ( 'filename' ); /** * Относительный или полный путь до директории загрузки. * * @var string */ var $Dir = './uploads'; /** * Опция, возможные варианты: 1\0. 1 - переименовывает загружаемые файлы по формату: годмесяцдень_***, где *** - случайные числа. 0 - загружает файлы с оригинальными именами. * * @var integer */ var $UnicName = 1; /** * Опция, возможные варианты: 1\0. 1 - включает автовыставление прав доступа на файл. 0 - автовыставление выключено. * * @var integer */ var $AutoChmod = 1; /** * Если опция AutoChmod включена, то будут выставлены права установленные в Chmod. * * @var integer */ var $Chmod = 0644; /** * Опция, возможные варианты: 0\1\2. 0 - проверка на существование файла в загружаемой директории выключена, происходит перезапись файла, если файл существует. * 1 - проверка на существование файла включена, если файл существует, то вновь загружаемый файл загружен не будет. * 2 - ппроверка на существование файла включена, если файл существует, то вновь загружаемый файл будет переименован по формату имя_n, где 1,2,3..n и загружен. * * @var integer */ var $CheckFile = 2; /** * Массив разрешенных расширений файлов для загрузки. * * @var array of string */ var $FilesExt = array ( 'gif', 'jpg', 'bmp' ); /** * Максимальный размер загружаемых файлов в байтах. * * @var integer */ var $MaxFileSize = 1024000000; /** * В данном массиве содержится информация о загруженных файлах (в случае успеха загрузки) или информация об ошибках (в случае неудачи). * * @var array of string */ var $UploadedFiles;
/** * Массив ошибок. * * @var array of string */ var $ErrorsDesc = array (
0 => 'Value: 0; There is no error, the file uploaded with success.',
1 => 'Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini.', 2 => 'Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.', 3 => 'Value: 3; The uploaded file was only partially uploaded.', 4 => 'Value: 4; No file was uploaded.', 5 => 'Value: 5; No file to upload', 6 => 'Value: 6; Missing a temporary folder.', 7 => 'Value: 7; Error of file extension.', 8 => 'Value: 8; Error of file size', 9 => 'Value: 9; Error of existing file. File already exist.'
);
/** * Главная функция класса, производит проверку и загрузку файлов, выставление прав, определение ошибок и т.д. * */ function DoUpload () {
@ set_time_limit ( 0 );
foreach ( $this -> Files as $value ) {
$flag = false;
$filename = basename ( $_FILES[$value]['name'] );
$file = $this -> _split_filename ( $filename ); $ext = $file['ext']; $body = $file['body'];
if ( ! in_array ( $ext, $this -> FilesExt ) ) {
$this -> UploadedFiles[$value]['ErrorMsg'] = $this -> ErrorsDesc[7];
$flag = true;
}
if ( $_FILES[$value]['name'] == '' ) {
$this -> UploadedFiles[$value]['ErrorMsg'] = $this -> ErrorsDesc[5];
$flag = true;
}
if ( $_FILES[$value]['size'] > $this -> MaxFileSize ) {
$this -> UploadedFiles[$value]['ErrorMsg'] = $this -> ErrorsDesc[8];
$flag = true;
}
$newname = ( $this -> UnicName == 1) ? date("ymd").'_'.mt_rand(100, 999).'.'.$ext : $filename; $file = $this -> _split_filename ( $newname ); $body = $file['body']; $ext = $file['ext'];
if ( is_file ( $this->Dir."/".$newname ) ) {
if ( $this -> CheckFile == 1 ) {
$flag = true; $this -> UploadedFiles[$value]['ErrorMsg'] = $this -> ErrorsDesc[9];
} elseif ( $this -> CheckFile == 2 ) {
$i = 0;
while ( is_file ( $this->Dir."/".$newname ) ) {
$i++; $newname = $body.'_'.$i.'.'.$ext;
}
}
}
if ( ! $flag ) { if ( move_uploaded_file( $_FILES[$value]['tmp_name'], $this -> Dir."/".$newname ) ) {
$this -> UploadedFiles[$value]['Status'] = 1; $this -> UploadedFiles[$value]['NewName'] = $newname; $this -> UploadedFiles[$value]['Size'] = $_FILES[$value]['size'];
($this -> AutoChmod == 1 ) ? @chmod ($this -> Dir."/".$newname, $this -> Chmod ) : '' ;
} else {
$this -> UploadedFiles[$value]['ErrorMsg'] = $this -> ErrorsDesc[$_FILES[$value]['error']];
}
}
} /** * Вспомогательная функция, возвращает массив, содержащий в себе расширение файла и тело имени файла. * image.gif -> ext = gif; body = image; * */}
function _split_filename ( $file ) {
$file = explode ( '.', $file); $ext = $file[ ( count ( $file ) - 1 ) ]; unset ($file[ ( count ( $file ) - 1 ) ] ); $name = implode ( '.', $file); $ret['ext'] = $ext; $ret['body'] = $name;
return $ret;
}
} ?>
|
пытается закачать большого размера файлы
вот сама форма
| Код | <?php require ("UploadFiles.class.php");
if ( isset ( $_POST['ok'] ) ) { $Upload = new Upload();
$Upload -> Files = array ('file1', 'file2'); $Upload -> Dir = './uploads'; $Upload -> UnicName = 0; $Upload -> AutoChmod = 1; $Upload -> Chmod =0644; $Upload -> CheckFile = 2;
$Upload -> FilesExt = array ( 'gif', 'jpg' ); $Upload -> MaxFileSize = 1024;
$Upload -> DoUpload(); print_r ($Upload -> UploadedFiles); } print '<form action="" method="post" enctype="multipart/form-data" name="upload_files" id="upload_files"> <input type="hidden" name="MAX_FILE_SIZE" value="1024"> <table width="80%" border="0" cellspacing="5" cellpadding="5">
<tr> <td rowspan="5" align="right" valign="top" class="tabl_4">Файлы для загрузки:</td> <td class="tabl_4" align="left"> <input name="file1" type="file" class="forminput" id="file1"> </td> </tr> <tr> <td class="tabl_4" align="left"><input name="file2" type="file" class="forminput" id="file2"></td> </tr> <tr align="center" valign="middle"> <td colspan="2" class="tabl_4"><input name="ok" type="submit" class="forminput" id="ok" value="Загрузить файлы"></td> </tr> </table> </form>';
?>
|
че не правельно??? или я гдето туплю??? Добавлено @ 11:46 вроде же написал максимальный размер 1024 |