jquery загрузить

Хорошо, я не могу опубликовать весь код, потому что это просто не нужно. Но вот проблема.

У меня есть диалог с вкладками (ui.tabs), который содержит форму загрузки для загрузки файлов. Однако на предыдущей вкладке я проверяю состояние радиокнопки, чтобы определить, разрешать ли только файлы изображений или файлы флэш-памяти.

Я заранее инициализировал uploadify как таковой в $(document).ready:

$("#uploadify").uploadify({params});

... включая параметры 'fileDesc' и 'fileExt'. Сам по себе работает нормально. Но как только он был инициализирован, я хочу изменить настройки, используя:

$("#uploadify").uploadifySettings('fileDesc','blah blah');
$("#uploadify").uploadifySettings('fileExt','.ext');

... но когда я это делаю, Firebug выдает следующее:

document.getElementById(a(this).attr("id") + "Uploader").updateSettings не является функцией http://localhost/projectname/Javascript/jquery.uploadify.v2.1.0.min.js Строка 26

Теперь, очевидно, нет ничего плохого в самой загрузке, но я могу быть здесь полной лапшой. Это происходит потому, что он считает, что «#uploadify» еще не инициализирован?


person David    schedule 02.12.2009    source источник


Ответы (6)


Вы должны увидеть принятый ответ в этой теме. Ключевым моментом является вызов $("#uploadify").uploadifySettings(); внутреннего обработчика запуска загрузки или обработчика отправки формы.

В целом код js должен быть таким:

jQuery(function($){

  //make uploadify
  $("#uploadify").uploadify({params});

  //handle form submit
  $("#form").submit(function(e){
    //prefent form submit
    e.preventDefault();

    //change the uploadify setting, ex. scriptData
    $("#uploadify").uploadifySettings("scriptData", {'file_id': '345'});

    //start upload
    $("#uploadify").uploadifyUpload();

  });
});

Этот код работает для меня, я надеюсь, что он сработает в вашем случае. Отправка формы может быть заменена другой функцией, например функцией startUpload, которая существует в примере скрипта с веб-сайта uploadify.

person Donny Kurnia    schedule 05.01.2010

Я борюсь с той же проблемой.

Кто-то на форумах Uploadify считает, что это ошибка, связанная с ситуацией, когда родительский элемент имел стиль display:none.

http://www.uploadify.com/forum/viewtopic.php?f=7&t=2163

person Joubert Nel    schedule 04.12.2009
comment
это вполне может быть проблемой ... хотя я не собираюсь пытаться «исправить» это, пока оно работает, я добавил ссылку в закладки для дальнейшего использования. :) - person David; 07.12.2009
comment
Ссылка битая, не ломайте интернет ;-) - person Anders Rune Jensen; 28.05.2012

Вы предполагаете, что #uploadify еще не инициализирован. Вы вставили свой код uplaodify в

$(document).ready(function() { ... });

?

person igorp1024    schedule 02.12.2009
comment
И еще: доступны ли swf-скрипты, размещенные на сервере? Не уверен, но похоже, что uploadify динамически встраивает их на страницу... - person igorp1024; 02.12.2009
comment
Я сделал, как упоминалось выше, он сидит на локальном хосте, у меня есть доступ к скрипту (он отлично работает сам по себе, я просто не могу изменить настройки с помощью uploadifySettings. Я просто не знаю... Да , он есть в document.ready. - person David; 02.12.2009
comment
Хорошо, на самом деле это не отвечает на вопрос, поэтому я все еще открыт для ответа. Но чтобы заставить его работать, я просто повторно инициализировал все это при нажатии переключателей, просто чтобы заставить его работать. НЕ идеальное решение вообще. Так что я все еще открыт для идей о том, чтобы на самом деле это было правильно... - person David; 02.12.2009

Я получил эту ошибку при использовании Uploadify внутри диалогового окна jquery.

Решение состояло в том, чтобы инициализировать Uploadify после создания диалогового окна.

person joelnet    schedule 31.03.2011

IE может кэшировать файл uploadify.swf, и по какой-то причине это приведет к сбою у некоторых пользователей. В конфигурации установки Uploadify измените URL-адрес «загрузчика», чтобы включить уникальное значение в строку запроса, чтобы предотвратить кэширование:

'загрузчик': '/Content/uploadify.swf?nocache=' + новая дата().getTime()

Это решило проблему для меня.

person bzarah    schedule 12.05.2011

Пытаться

$("#uploadify").uploadifySettings({fileDesc: 'blah blah', fileExt: '.ext'});
person ZippyV    schedule 02.12.2009
comment
Справедливый ответ, но это то, что я попробовал в первый раз - когда это не сработало, я упростил его до кода, упомянутого выше. Я все еще получаю сообщение об ошибке «updateSettings не является функцией». :\ - person David; 02.12.2009