Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2015, 18:48   #1
Стас077
Новичок
Джуниор
 
Регистрация: 26.10.2012
Сообщений: 1
По умолчанию Не распаковывается zip архив на yii

Есть модуль который распаковывает архив с модулем в папку модули и прописывает его в config все было прекрасно но недавно он перестал выполнять свои функции и я не могу понять в чем дело! Подскажите пожалуйста.

Вот контроллер этого модуля


PHP код:
<?php

class DefaultController extends Controller
{
    public function 
actionIndex()
    {
        
$ext end(explode('.'$_FILES["filename"]["name"]));                    
        if (
$ext == zip) {
            
$path_tmp str_replace('protected'''Yii::app()->getBasePath()) . 'tmp' DIRECTORY_SEPARATOR $_FILES["filename"]["name"]; 
            
move_uploaded_file($_FILES["filename"]["tmp_name"], $path_tmp);
            
chmod($path_tmp0777);

            
$zip = new ZipArchive;
            
$res $zip->open($path_tmp);
            if (
$res === true) {
                
$path_module Yii::app()->getBasePath() . DIRECTORY_SEPARATOR 'modules' DIRECTORY_SEPARATOR;  
                
$zip->extractTo($path_module);
                
$zip->close();
                
$module_name strtolower(str_replace('.'.$ext''$_FILES["filename"]["name"]));
                
$path_config Yii::app()->getBasePath() . DIRECTORY_SEPARATOR 'config' DIRECTORY_SEPARATOR 'main.php';
                
$config_file file_get_contents($path_config);
                
$str_to_replace $this->_getFirstBetweenStr('//open tag for zipsetup''//close tag for zipsetup'$config_file);
                
$config_file str_replace($str_to_replace$str_to_replace "'" $module_name "',\r\n" str_repeat(' '8), $config_file);                
                
$h fopen($path_config'w+');
                
fwrite($h$config_file);
                
chmod($path_config0777);
                
fclose($h);
            } else {
                echo 
'failed';
            }
            
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : $_SERVER['HTTP_REFERER']);   
            
//$this->render('index');
        
}
    }

    private function 
_getFirstBetweenStr($str_open$str_close$haystack
    {
        if (
preg_match('#'.preg_quote($str_open).'(.+?)'.preg_quote($str_close).'#is'$haystack$res)) {
            return 
$res[1];
        } else {
            return 
false;
        }       
    }
}
Забыл добавить файл загружается ложится в папку tmp и прописывается в config все это работает походу не работает только
PHP код:
extractTo 
Стас077 вне форума Ответить с цитированием
Старый 03.03.2015, 19:06   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Случайно права на папку никто не менял?
Streletz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программно распаковать zip архив Letnab Общие вопросы Delphi 3 15.04.2014 17:32
Zip-архив RUSlan48 Общие вопросы Delphi 7 20.02.2014 01:44
Программно распаковать zip-архив Dux Общие вопросы Delphi 19 23.08.2013 09:38
как распакавать zip-архив Олька Помощь студентам 3 02.09.2008 21:54
Zip архив urels Общие вопросы Delphi 7 26.04.2008 17:31