Переписать плагин заливки фото

Тема в разделе "Как сделать...", создана пользователем mdss, 14 сен 2010.

Статус темы:
Закрыта.
  1. mdss

    mdss ♖♘♗♕♔♗♘♖

    Moderator
    Регистр.:
    20 фев 2007
    Сообщения:
    1.134
    Симпатии:
    668
    Я использую визуальный редактор от имперави
    http://redactor.imperavi.ru/
    Но проблема в том, что сервер у меня настроен нормально (мефиш привет) и при попытке залить фото вылезает ошибка
    PHP:
    function.copy]: open_basedir restriction in effectFile(/home/mdss/data/mod-tmp/phpWQGG5nis not within the allowed path(s): (/home/mdss/data/www/site.ru:.) in /home/mdss/data/www/site/admin/templates/editors/visual/upload.php on line 13
    http
    ://redactor/tmp/1.jpg" />
    Мне непонятно, почему плагин пытается лить фотки через корень сервера, и я даже хз куда копать, т.к. пых для меня темный лес
     
  2. porsche2

    porsche2

    Регистр.:
    18 ноя 2007
    Сообщения:
    667
    Симпатии:
    210
    скрипт правильно работает и пишет файл вначале в temp, а потом копирует/переносит куда надо.

    Права на mod-tmp у apache, а php файл у mdss, нужно восстановить справедливость и отдать все apache :)
     
  3. mdss

    mdss ♖♘♗♕♔♗♘♖

    Moderator
    Регистр.:
    20 фев 2007
    Сообщения:
    1.134
    Симпатии:
    668
    папка mod-tmp выше директории домена, туда закрыт доступ всем ) Вообще выше директории домена не пробраться
     
  4. mdss

    mdss ♖♘♗♕♔♗♘♖

    Moderator
    Регистр.:
    20 фев 2007
    Сообщения:
    1.134
    Симпатии:
    668
    в общем я подумал что это проблемы моего сервака, т.к. его настройки просто параноидальные (но тем не менее я не буду их менять). Плагин был переписан. Если нужен код, выкладываю ниже:
    PHP:
    <?php
        $dir 
    $_SERVER['DOCUMENT_ROOT'].'/photos/';
        
    $WebDir '/photos/';
        
    $_FILES['file']['type'] = strtolower($_FILES['file']['type']);
        function 
    get_image_info($file NULL)
        {
            if(!
    is_file($file)) return false;
            if(!
    $data getimagesize($file) or !$filesize filesize($file)) return false;
            
    $extensions = array(
                
    => 'gif',    => 'jpg',
                
    => 'png',    => 'swf',
                
    => 'psd',    => 'bmp',
                
    => 'tiff',    => 'tiff',
                
    => 'jpc',    10 => 'jp2',
                
    11 => 'jpx',    12 => 'jb2',
                
    13 => 'swc',    14 => 'iff',
                
    15 => 'wbmp',    16 => 'xbmp');
            
    $result = array(
                
    'width'        =>    $data[0],
                
    'height'    =>    $data[1],
                
    'extension'    =>    $extensions[$data[2]],
                
    'size'        =>    $filesize,
                
    'mime'        =>    $data['mime']);
            return 
    $result;
        }
        
    $valid_extensions = array('gif''jpg''png');
        if(!
    $image_info get_image_info($_FILES['file']['tmp_name']) or !in_array($image_info['extension'], $valid_extensions))
        {
            exit();
        }
        else
        {
            
    $upload_file_name uniqid(NULLtrue).'.'.$image_info['extension'];
            if(@
    move_uploaded_file($_FILES['file']['tmp_name'], $dir.$upload_file_name)){
                echo  
    $WebDir.$upload_file_name;   
            }
        }
    ?>
     
Статус темы:
Закрыта.