Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по Uploadify, не могу понять кое-что... 
V
    Опции темы
mark2011
Дата 9.11.2011, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 28.6.2011

Репутация: 2
Всего: 2



Доброе утро!

Всем спасибо, кто ответил на мой вопрос здесь. 

Изменил логику загрузки файлов, но у меня файлы должны грузиться в разные каталоги в зависимости от выбора пользователя. Он эти каталоги программно создаёт... Соответственно имеем такой код:

1. На стороне Uploadify:
Код

$('#file_upload').uploadify({
    'auto'        : true,
    'multi'        : true,
    'fileDesc'  : 'Images',
    'fileExt'   : '*.jpg;*.gif;*.png',
    'uploader'  : '/uploadify.swf',
    'script'    : '/uploadify.php',
    'cancelImg' : '/cancel.png',
    'folder'    : '../uploads',
    'scriptData': {'realFolder' : $('#category').val()}
  });


2. На стороне PHP:
Код

if (!empty($_FILES))
    {
        if (is_uploaded_file($_FILES['Filedata']['tmp_name']))
        {
            if (preg_match("#^[0-9]+$#", $_REQUEST['realFolder']))
            {
                $dir = get_category_dirname($_REQUEST['realFolder']);
                $full_path = $_SERVER['DOCUMENT_ROOT'] . '/uploads/' . $dir . '/';
            }
            else
            {
                $full_path = $_SERVER['DOCUMENT_ROOT'] . '/uploads/';
            }
            move_uploaded_file($_FILES['Filedata']['tmp_name'], $full_path . $_FILES['Filedata']['name']);
        }
        echo "1";
    }


Здесь логика следующая: если я не выбрал каталог, он грузит в корневой. Соответственно, если каталог выбран, он грузит туда, куда указано... ну так должно быть по крайней мере.

Что на самом деле... я выбираю каталог, он туда грузит. Всё ок. Потом я переключаю выбор, а он всё равно грузит в каталог, куда грузил ранее.... т.е. почему-то не срабатывает вот это:
Код

if (preg_match("#^[0-9]+$#", $_REQUEST['realFolder']))
            {
                $dir = get_category_dirname($_REQUEST['realFolder']);
                $full_path = $_SERVER['DOCUMENT_ROOT'] . '/uploads/' . $dir . '/';
            }
            else
            {
                $full_path = $_SERVER['DOCUMENT_ROOT'] . '/uploads/';
            }


Ну или POST не сбрасывается... не знаю даже, на что подумать... Раньше был uploader на mootools, а сейчас решил всё на jQuery переводить, и вот столкнулся вот с такой проблемой.

Кто знает отпишитесь плиз, буду благодарен smile

Добавлено через 7 минут и 31 секунду
Да, кому интересно - дополнительный код, который здесь фигурирует:

Код

function category_exists($cat_id)
{
    global $db;
    $db->query('SELECT cat_id FROM photo_browser_categories WHERE cat_id = "'.$cat_id.'"');
    $rows = $db->get_rows_count();
    
    if ($rows < 1)
    {
        return false;
    }
    
    else
    {
        return true;
    }
}

function get_category_dirname($cat_id)
{
    if (!category_exists($cat_id))
    {
        return false;
    }
    
    global $db;
    $db->query('SELECT cat_dirname FROM photo_browser_categories WHERE cat_id = "'.$cat_id.'"');
    $r = $db->parse_query('array');
    
    return $r['cat_dirname'];
}

PM WWW ICQ Skype   Вверх
mark2011
Дата 9.11.2011, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 28.6.2011

Репутация: 2
Всего: 2



В общем сделал следующее:

Код

if (!empty($_FILES))
    {
        if (is_uploaded_file($_FILES['Filedata']['tmp_name']))
        {
            $f = fopen("test.txt", "a");
            fwrite($f, $_REQUEST);
            fclose($f);

и так далее по коду...

Результат: файл test.txt есть, но он пустой.
Как так может быть? Очевидно, уже разобрался, что из uploadify не передаётся в php значение realFolder.... непонятно... как его передать... где собака зарыта... 
PM WWW ICQ Skype   Вверх
MoLeX
Дата 9.11.2011, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



$_REQUEST - это массив, с ним так нельзя поступать. Надо так
Код

fwrite($f, var_export($_REQUEST, true));



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
mark2011
Дата 9.11.2011, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 28.6.2011

Репутация: 2
Всего: 2



MoLeX, 
Сделал. Ну так и есть, значение, выбранное в селекте, почему-то не передаётся :(
PM WWW ICQ Skype   Вверх
mark2011
Дата 9.11.2011, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 28.6.2011

Репутация: 2
Всего: 2



Люди, щас фокус покажу...

Имеем вот такой код:

Код

    $('#file_upload').uploadify({
    'auto'        : true,
    'multi'        : true,
    'fileDesc'  : 'Images',
    'fileExt'   : '*.jpg;*.gif;*.png',
    'uploader'  : '/uploadify.swf',
    'script'    : '/uploadify.php',
    'cancelImg' : '/cancel.png',
    'folder'    : '../uploads/',
    'scriptData': {'realFolder':'' + $('#cat2 option:selected').attr('value') + ''},
    'onOpen'    : function()
    {
        alert($('#cat2 option:selected').attr('value'));
    }
  });


Соответственно имеется
Код

<select name="cat2" id="cat2"><option value="---" selected>Выберите раздел</option><option value="1">Первый каталог</option><option 
value="2">2</option></select>


Алерт срабатывает на ура - меняю выбор селекта - он отражается и в алерте...
То же самое (см. scriptData) - не срабатывает...

В PHP имеем вот такой код:
Код

if (!empty($_FILES))
    {
        if (is_uploaded_file($_FILES['Filedata']['tmp_name']))
        {
            $f = fopen("test.txt", "w");
            fwrite($f, var_export($_POST['realFolder'], true));
            fclose($f);
        }
        
        
        echo "1";
    }

Т.е. создаётся файлик, туда записывается переменная (каждый раз файлик обновляется). И всё.... так вот суть в том, что в алерте выдаётся одно, а в файл пишется совершенно другое.... умом догадываюсь, что может метод не POST..... но какой же?? PUT что ли? 
Я раньше нашёл ошибку, у меня на странице 2 селекта с одинаковыми id и именами были. Сейчас они разные, но сути дела это не поменяло....

Гляньте кто-нить свежим взглядом, где я что не так делаю? Уже целый день сижу, обидно даже, что остальная работа стоит :(

PM WWW ICQ Skype   Вверх
ksnk
Дата 9.11.2011, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата(mark2011 @  9.11.2011,  14:45 Найти цитируемый пост)
 умом догадываюсь, что может метод не POST

GET? Можно просто вывести $_REQUEST, вдруг еще и через куки кто передает что нибудь...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
mark2011
Дата 9.11.2011, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 28.6.2011

Репутация: 2
Всего: 2



ksnk, 
Да выводил уж REQUEST... он просто берёт значение из другого селекта, похоже на то по крайней мере.... хотя id и name разные. Как так получается, ума не приложу... если бы можно было как-нибудь зафигачить переменную из JS в POST.... но клиент-сервер блин... ладно, оффтоп )) 
PM WWW ICQ Skype   Вверх
mark2011
Дата 9.11.2011, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 28.6.2011

Репутация: 2
Всего: 2



Разобрался с вопросом, всем спасибо.
PM WWW ICQ Skype   Вверх
JocBro
Дата 2.12.2011, 04:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 2.12.2011

Репутация: нет
Всего: нет



Подскажите пожалуйста. В файле index.php:
   
Код

    <h3>Загрузка файлов на сервер:</h3>
    <div id="fileQueue"></div>
    <input type="file" name="uploadify" id="uploadify" />
    <div id="info"></div>
    <div id="info2"></div>


Файл uploadify.php:
Код

if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];
    
    if(!$_REQUEST[folder]) $folder = '../uploads/';
    else $folder = $_REQUEST['folder'];
    
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $folder . '/';
    $ext = preg_replace('/(?:.*)(\.{1}[a-zA-Z]{3,4})$/','$1', $_FILES['Filedata']['name']);
    $unic_name  = time().'_'.rand(0,1000).$ext;
    $targetFile =  str_replace('//','/',$targetPath) . $unic_name;
    $imgsrc = "uploads/".$unic_name;
    $r =    mysql_query ("INSERT into images(m_id, imgsrc) VALUES ('$m_id', '$imgsrc')", $db);
        move_uploaded_file($tempFile,$targetFile);
    
            echo "1";

}

Т.е. я в конце добавил строчку, которая вставляет в базу номер поста и ссылку на изображение, но у меня никак не получается передать вместе с файлом m_id. 
Пробовал в index.php <input type="hidden" ... и гетом и через сессии, но видимо нужно копать в джавескрипте, а я в нем практически ничего не понимаю, вот и прошу кто может помочь, как передать m_id из index.php вместе с загружаемым файлом, чтобы потом обработать в uploadify.php 
PM MAIL   Вверх
JocBro
Дата 2.12.2011, 06:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 2.12.2011

Репутация: нет
Всего: нет



Все разобрался
PM MAIL   Вверх
ROM121
Дата 16.6.2012, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 16.6.2012

Репутация: нет
Всего: нет



mark2011,

В надежде на то, что  mark2011 заглянет еще в эту ветку. smile 
Тоже пытаюсть разобраться с Uploadify, но застрял на том, что не получается передать поля формы.
Как решил свою проблему?

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0575 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.