2010-11-20 2 views
0

Я пытаюсь использовать Uploadify в первый раз. У меня нет проблем с загрузкой файла. Это работает отлично. Моя проблема заключается в том, что мой PHP-скрипт не получает одну переменную $ _REQUEST из Uploadify, что, очевидно, означает, что я не могу отслеживать какие-либо фотографии или удалять те, которые должны быть удалены. Вот что я использую:

$('.upload').uploadify({ 
    'uploader' : 'uploadify/uploadify.swf', 
    'script' : 'upload.php', 
    'cancelImg' : 'uploadify/cancel.png', 
    'folder' : 'img/sections/' + page, 
    'auto'  : true, 
    'multi'  : false, 
    'method' : 'post', 
    'fileExt' : '*.jpg;*.jpeg;*.gif;*.png', 
    'onComplete': function(event, ID, fileObj, response, data) { 
      window.location.replace("upload.php");       
    } 
}); 

Я пытаюсь отправить поле ввода идентификатор в PHP скрипт, установив его в моей функции мышей (каждое поле показывает текущую фотографию и при нажатии она затухает и показывает Uploadify формы):

Uploader.clk = function() { 
    pic = $(this).find('input.upload').attr('id'); 
    field = "#" + pic; 
    $(field).uploadifySettings('scriptData' : { 'field' : field }); 
    // all my jQuery animations 
} 

конечно, это не работает для меня, но документации Uploadify оставляет желать много лучшего. Моя проблема, безусловно, в вызове uploadifySettings, как если бы я прокомментировал это, все остальное работает нормально. Даже если я ставлю

'scriptData': { 'Foo': 'бар'}

в мои настройки я до сих пор получить только SessionID и два поля под названием "UTMA" и "vsid" в мой массив $ _REQUEST.

Итак, мой вопрос в том, как я могу указать свой PHP-скрипт, на котором он выполняет операции?

ответ

0

Два вопроса здесь, нет никакой необходимости, чтобы выбрать элемент в два раза, вы можете просто сделать:

$(this).find("input.upload").uploadifySettings(...); 

И вам нужно передать параметры в качестве объекта (это просто декларация этикетки в настоящее время), как это :

Uploader.clk = function() { 
    $(this).find('input.upload') 
     .uploadifySettings({'scriptData' : { 'field' : field }}); 
    // all my jQuery animations 
} 

отметить также, что per the documentation вам нужно использовать onSelectOnce все равно:

При обновлении опции scriptData через uploadifySettings() она не будет обновляться из-за проблем с синхронизацией с onOpen. Вместо этого используйте функцию onSelectOnce для изменения переменной scriptData во время автоматической загрузки.

В целом, это должно выглядеть следующим образом:

$('.upload').uploadify({ 
    'uploader' : 'uploadify/uploadify.swf', 
    'script' : 'upload.php', 
    'cancelImg' : 'uploadify/cancel.png', 
    'folder' : 'img/sections/' + page, 
    'auto'  : true, 
    'multi'  : false, 
    'method' : 'post', 
    'fileExt' : '*.jpg;*.jpeg;*.gif;*.png', 
    'onComplete': function(event, ID, fileObj, response, data) { 
      window.location.replace("upload.php");       
    }, 
    'onSelectOnce': function(event,data) { 
      $(this).uploadifySettings({'scriptData' : { 'field' : field }}); 
    }   
}); 
+0

Ха-ха, я честно не знаю, почему я это сделал дополнительной переменной. Разочарование. Это имеет больший смысл, но теперь моя загрузка даже не запускается (индикатор прогресса входит и сидит там без показанных%). Ожидает ли теперь вызова метода startUpload()? –

+0

@Thomas - вы получаете какие-либо ошибки JavaScrpt на странице? –

Смежные вопросы