Страница 1 из 1

yii и uploadify

Добавлено: 2011.10.25, 11:42
hash
Есть пара вопросов, касательно взаимодействия uploaudify и yii.

1. Если скрипт-обработчик фалов лежит так webroot/js/uploadify.php, то файл загружается и обрабатывается нормально. А вот если указать контроллёр в качестве обработчика $this->createAbsoluteUrl('/file/upload'), то, файл не загружается, вылетает хттп-еррор, код 302. Как указать контроллёр в качестве обработчика загруженных файлов?

2. Аналогично, если папка для загружаемых файлов /tmp лежит в корне, то все файлы туда загружаются нормально, а если в /protected/tmp, то никаких ошибок при загрузке файла не вылетает, но сам файл не сохраняется в директории. Как решить эту проблему?


UPD1: с контроллёром разобрался, теперь файл обрабатывается

Re: yii и uploadify

Добавлено: 2011.10.25, 13:55
hash
Появилась ещё проблема :D

Для сохранения файла использую готовый кусок кода из uploadify;

Код: Выделить всё

                if (!empty($_FILES))
                {                                                                
                        $tempFile = $_FILES['Filedata']['tmp_name'];
                        $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';                 
                        $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];

                        // $fileTypes  = str_replace('*.','',$_REQUEST['fileext']);
                        // $fileTypes  = str_replace(';','|',$fileTypes);
                        // $typesArray = split('\|',$fileTypes);
                        // $fileParts  = pathinfo($_FILES['Filedata']['name']);
    
                        // if (in_array($fileParts['extension'],$typesArray)) {
                        // Uncomment the following line if you want to make the directory if it doesn't exist
                        // mkdir(str_replace('//','/',$targetPath), 0755, true);
                        
                        move_uploaded_file($tempFile,$targetFile);
                        echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);
                        // } else {
                        //     echo 'Invalid file type.';
                        // }
                }  
если в этом куске кода не будет ни одного эха, то файл на сервер загружается, но на странице пользователя видимых изменений не происходит. Индикатор загрузки uploadify стоит на месте, т. е. кажется что файл не загружается. (проверял в разных браузерах), хотя на самом деле загружается. Если в контроллёре делаю любое эхо (кроме пустого), то индикатор загрузки работает нормально. В чём тут дело, объясните пожалуйста!)

Да, и на php версии 5.3.8 под windows при сохранении файла теряется первая буква его имени, на 5.2.17 начего не теряется.

Re: yii и uploadify

Добавлено: 2011.10.25, 14:59
taral14
Для не авторизированных юзеров закрыт доступ? Если так то проблема ясна

Re: yii и uploadify

Добавлено: 2011.10.25, 19:21
hash
К сожалению, это не так. экшен загрузки добавлен для всех юзеров.

Файлы в /protected/tmp всё ещё не сохраняются, и странности с эхом всё ещё не пропали

Re: yii и uploadify

Добавлено: 2011.10.25, 21:04
Johnatan
Я раньше пользовался uploadify. Проблем было столько, что надоело патчить и пошёл искать другой аплоадер. Нашёл великолепный аплоадер на ajax:
http://www.yiiframework.com/extension/eajaxupload/

Re: yii и uploadify

Добавлено: 2011.10.26, 14:24
taral14
Я раньше пользовался uploadify. Проблем было столько, что надоело патчить и пошёл искать другой аплоадер. Нашёл великолепный аплоадер на ajax:
Я использую uploadify и никаких проблем нету. Правда я использую последнюю версию и виджет для yii написал свой

Re: yii и uploadify

Добавлено: 2011.10.26, 19:05
Johnatan
taral14 писал(а):
Я раньше пользовался uploadify. Проблем было столько, что надоело патчить и пошёл искать другой аплоадер. Нашёл великолепный аплоадер на ajax:
Я использую uploadify и никаких проблем нету. Правда я использую последнюю версию и виджет для yii написал свой
Сессию через GET передаёте?

Re: yii и uploadify

Добавлено: 2011.10.26, 19:50
SpiLLeR
C uploadify тоже намучился в свое время, да и сейчас мучаюсь... EAjaxUpload чем-то не понравился, уже не помню чем. Пока смотрю в сторону JQuery File Upload.

Re: yii и uploadify

Добавлено: 2011.10.26, 20:50
RusAlex
написал свою загрузку файлов "через аякс". ни один из готовых не делал то что надо

Re: yii и uploadify

Добавлено: 2011.10.27, 18:06
taral14
Сессию через GET передаёте?
Нет. Через пост. Через параметр uploadify postData
А в нужном контроллере в методе init

Код: Выделить всё

        if(isset($_POST['PHPSESSID'])) {
            Yii::app()->session->close();
            Yii::app()->session->sessionID = $_POST['PHPSESSID'];
            Yii::app()->session->init();
        }
 

Re: yii и uploadify

Добавлено: 2011.10.27, 18:07
taral14
написал свою загрузку файлов "через аякс". ни один из готовых не делал то что надо
У такой загрузки есть 2 недостатка
1. Нету полосы загрузки
2. Нету мультизаргузки

Re: yii и uploadify

Добавлено: 2011.10.28, 00:03
SpiLLeR

Re: yii и uploadify

Добавлено: 2011.10.28, 15:10
taral14
Как нету?
Или я отстал от жизни или что-то тут не так. Как js может узнавать процент загруженности файла? Да еще и мультиселект выбора файлов поле выдавать. Если браузер поддерживает только для 1 файла а все остальные варианты через флеш реализовывались

Re: yii и uploadify

Добавлено: 2011.10.28, 16:42
Dismal
taral14 писал(а):Или я отстал от жизни или что-то тут не так. Как js может узнавать процент загруженности файла? Да еще и мультиселект выбора файлов поле выдавать. Если браузер поддерживает только для 1 файла а все остальные варианты через флеш реализовывались
Отстали :) XMLHttpRequest2

Re: yii и uploadify

Добавлено: 2011.10.28, 17:36
taral14
Отстали XMLHttpRequest2
Ну что тут сказать. Удивительно просто. Отличная штука. Буду отказываться от uploadify постепенно. Кстати експлорер с какой версии поддерживает?

Re: yii и uploadify

Добавлено: 2011.10.28, 18:06
Dismal
taral14 писал(а):Кстати експлорер с какой версии поддерживает?
http://caniuse.com/xhr2

Re: yii и uploadify

Добавлено: 2012.04.21, 11:50
buzzman
SpiLLeR писал(а):http://valums.com/ajax-upload/
Понимаю, что к статье давно не было комментариев, но никак не могу найти ответ на свой вопрос:
- подскажите, как в вышеупомянутом аплоадере указать список валидных для загрузки файлов сразу в окне выбора, а не после него. Т.е. если я даю возможность загрузки txt, то в окне выбора файлов пользователь должен видеть только *.txt и папки.

Спасибо за помощь.