Вход Регистрация
Файл: InstantSocial/uploud/core/classes/upload_photo.class.php
Строк: 83
<?php
/******************************************************************************/
//                                                                            //
//                             InstantCMS v1.9                                //
//                        http://www.instantcms.ru/                           //
//                                                                            //
//                   written by InstantCMS Team, 2007-2011                    //
//                produced by InstantSoft, (www.instantsoft.ru)               //
//                                                                            //
//                        LICENSED BY GNU/GPL v2                              //
//                                                                            //
/******************************************************************************/

class cmsUploadPhoto {

    private static 
$instance;

    public 
$upload_dir    '';            // директория загрузки
    
public $small_size_w  96;            // ширина миниатюры
    
public $small_size_h  '';            // высота миниатюры
    
public $medium_size_w 480;        // ширина среднего изображения
    
public $medium_size_h '';            // высота среднего изображения
    
public $thumbsqr      true;        // квадратное изображение, да по умолчанию
    
public $is_watermark  true;        // накладывать ватермарк, да по умолчанию
    
public $is_saveorig   0;            // сохранять оригинал фото, нет по умолчанию
    
public $dir_small     'small/';    // директория загрузки миниатюры
    
public $dir_medium    'medium/';    // директория загрузки среднего изображения
    
public $is_circle     false;        // скруглять уголки, нет по умолчанию
    
public $only_medium   false;        // загружать только среднее изображение, нет по умолчанию

// ============================================================================ //
// ============================================================================ //

    
private function __construct(){
        
$this->inDB cmsDatabase::getInstance();
    }

    private function 
__clone() {}

    public static function 
getInstance() {
        if (
self::$instance === null) {
            
self::$instance = new self;
        }
        return 
self::$instance;
    }

// ============================================================================ //
// ============================================================================ //

    /**
     * Загружает фото файл
     * @return array $file (filename, realfile)
     */
    
public function uploadPhoto($old_file=''){
        
        
// если каталог загрузки не определен, возвращаем ложь
        
if (!$this->upload_dir) { return false; }

        
$inCore cmsCore::getInstance();

        if (
$_FILES['Filedata']['name']){

            
$inCore->includeGraphics();

            
$realfile     $this->inDB->escape_string($_FILES['Filedata']['name']);
        
            
$path_parts pathinfo($realfile);
            
$ext        strtolower($path_parts['extension']);
            
            
// убираем расширение файла вместе с точкой
            
$realfile substr($realfile0strrpos($realfile'.'));
        
            if (
$ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png' && $ext != 'bmp') { return false; }

            
$filename                md5(time().$realfile).'.jpg';                    
        
            
$uploadfile               $this->upload_dir $realfile;
            
$uploadphoto            $this->upload_dir $filename;
            
$uploadthumb['small']  = $this->upload_dir $this->dir_small $filename;
            
$uploadthumb['medium'] = $this->upload_dir $this->dir_medium $filename;
            
            
$uploadphoto            $this->upload_dir $filename;
        
            
$source                   $_FILES['Filedata']['tmp_name'];
            
$errorCode               $_FILES['Filedata']['error'];
        
            if (
$inCore->moveUploadedFile($source$uploadphoto$errorCode)) {
                
                
// удаляем предыдущий файл если необходимо
                
$this->deletePhotoFile($old_file);
                
                if (!
$this->small_size_h) { $this->small_size_h $this->small_size_w; }
                if (!
$this->medium_size_h) { $this->medium_size_h $this->medium_size_w; }

                
// Гененрируем маленькое и среднее изображения
                
if(!$this->only_medium){
                    @
img_resize($uploadphoto$uploadthumb['small'], $this->small_size_w$this->small_size_h$this->thumbsqr);
                }
                @
img_resize($uploadphoto$uploadthumb['medium'], $this->medium_size_w$this->medium_size_hfalsefalse);

                
// Скруглять уголки
                
if($this->is_circle) { @img_circle($uploadthumb['small'],7); }

                
// Накладывать ватермарк
                
if($this->is_watermark) { @img_add_watermark($uploadthumb['medium']); }

                
// сохранять оригинал
                
if(!$this->is_saveorig) { @unlink($uploadphoto); } elseif($this->is_watermark) { @img_add_watermark($uploadphoto); }

                
$file['filename'] = $filename;

                
$realfile_1251    iconv('utf-8''cp1251'$realfile);
                
$file['realfile'] = $realfile_1251 $realfile_1251 $realfile;
        
        
            } else {
        
                return 
false;
                
            }


        } else {
        
            return 
false;
            
        }

        return 
$file;

    }

// ============================================================================ //
// ============================================================================ //
    /**
     * Удаляет файл фото с папок загрузки
     * @return bool
     */
    
public function deletePhotoFile($file=''){
        
        if (!(
$file && $this->upload_dir)) { return false; }
        
        @
chmod($this->upload_dir $file0777);
        @
unlink($this->upload_dir $file);
        @
chmod($this->upload_dir $this->dir_small $file0777);
        @
unlink($this->upload_dir $this->dir_small $file);
        @
chmod($this->upload_dir $this->dir_medium $file0777);
        @
unlink($this->upload_dir $this->dir_medium $file);

        return 
true;

    }
// ============================================================================ //
// ============================================================================ //
    
}
?>
Онлайн: 3
Реклама