HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 07.07.2008, 19:12
Naydav
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
С нами: 10191686

Репутация: 210
По умолчанию

Цитата:
пожайлусто исправте ошибку
1) Скрипт работает только при register_globals = on

2) Вот тебе класс аплоада

Применение
Код нужно немного переделать для аплоада только 1 файла
PHP код:
foreach($_FILES as $key=>$data)
                {
                    
$new explode('.',$data['name']);                
                    
$fupload=& FileUploader::getInstance();
                    
$fupload->_FILESKeyName=$key;
                    
$fupload->newName$NewFileName
                    $fupload
->DestinationPath$DestinationPath;
                    
$fupload->AddAllowedMIME('image/jpeg','image/pjpeg','image/gif','image/png');
                    
$file $fupload->StartUpload();                
                    unset(
$_FILES[$key]['name']);
                } 


Сам класс:
PHP код:
class FileUploader {
        
        var 
$_FILESKeyName;
        
        var 
$newNamefalse;
        
        var 
$DestinationPath'./';
        
        var 
$AllowedMIME= array();
        
        var 
$isUploadedfalse;
        var 
$ErrorMessage'';
        
        var 
$UploadErrors = Array(
            
0=>'There is no error, the file uploaded with success.',
            
1=>'The uploaded file exceeds the upload_max_filesize directive in php.ini.',
            
2=>'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.',
            
3=>'The uploaded file was only partially uploaded.',
            
4=>'No file was uploaded.',
            
6=>'Missing a temporary folder.',
            
7=>'Failed to write file to disk.',
            
8=>'File upload stopped by extension.'
        
);
        
        
        function 
FileUploader() {
            
        }
        
        function 
StartUpload() {            
            
$_file$_FILES[$this->_FILESKeyName];
            if (
$_file['error']!=0) {
                
$this->ErrorMessage$this->UploadErrors[$_file['error']];
                return;
            }
            else {
                if ( 
count($this->AllowedMIME)>&& !in_array($_file['type'], $this->AllowedMIME)) {
                    
$this->ErrorMessage'Wrong MIME type of uploaded file.';
                    return;
                }
                
                
// start uploading file
                
$this->getNewName($_file['name']);
                
move_uploaded_file($_file['tmp_name'], $this->DestinationPath.$this->newName);
                return 
$this->newName;
            }
        }
        
        function 
getNewName($oldname) {
            
$oldnameexplode('.'$oldname);
            
$extentionstrtolower($oldname[count($oldname)-1]);
            
array_splice($oldnamecount($oldname)-11);
            
$oldnameimplode('.'$oldname);
            
            
$this->newNamestrtolower($this->newName!==false $this->newName $oldname);
            
            
$new_namepreg_replace("/[^a-z0-9]+/i"'_'$this->newName);
            
$this->newName$new_name '.' $extention;

            
$i1;
            while(
file_exists($this->DestinationPath.$this->newName)) {
                
$this->newName$new_name '_' $i '.' $extention;
                
$i++;
            }
        }
        
        function 
AddAllowedMIME() {
            
$amountfunc_num_args();
            if (
$amount>0) {
                
$argumentsfunc_get_args();
                for(
$i=0$i<$amount$i++)
                    
array_push($this->AllowedMIME$arguments[$i]);
            }
        }
        
        function 
ClearAllowedMIME() {
            
array_splice($this->AllowedMIME0);
        }
        
        function &
getInstance() {
            static 
$instance;
            if (!
$instance$instance= new FileUploader();
            return 
$instance;
        }
    } 
Класс под php4, т.е не использует преимуществ php5
Пользуйся классами - экономь время

Последний раз редактировалось Naydav; 07.07.2008 в 19:17..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.