Я использую uploadify на странице, которая позволяет пользователю загружать изображения, а также поле категории, в котором можно отправить эти изображения. Теперь, я вижу, что uploadify предоставляет метод «scriptData», который позволяет мне отправлять пары ключей значения в сценарий uploadify.php. Но проблема в том, что метод scriptData захватывает свои значения при загрузке страницы (uploadify initialization). Таким образом, когда пользователь на странице меняет значения, у scriptData все еще есть значения по умолчанию, которые были там при загрузке страницы.
Во всяком случае, вокруг?
Бесконечно благодарен!
Возможное решение: я еще раз читал руководство и обнаружил, что вы можете изменить настройки с помощью вызова функции. Возможно, на правильном пути?
$('#fileInput').uploadifySettings('scriptData', getKeyValuePairs()).uploadifyUpload();
работая над этим сейчас ..
вам нужно будет выбрать текущее состояние входа пользователя через один из опросов callback: onOpen или onSelect. Посмотрите их документацию на правильную. Я полагаю, что onOpen более надежен, так как он проверяет текущее состояние ввода пользователя каждый раз при запуске загрузки. Тем не менее, вам может потребоваться отключить другие пользовательские входы, пока загрузка продолжается, или все еще требует от пользователя отправки формы, иначе любой пользовательский ввод, сделанный после последней загрузки, будет потерян.
В любом случае, я нашел это на своем форуме, который я бы onOpen
callback onOpen
:
$('#fileInput2').uploadifySettings( 'scriptData', {'ext':$('#dirTimeStamp').val(), 'ext2':$('#txtEmail').val()} );
Окончательная реализация будет (с использованием демонстрационного кода):
<input id="fileInput" name="fileInput" type="file" /> <script type="text/javascript">// <![CDATA[ $(document).ready(function() { $('#fileInput').uploadify({ 'uploader' : 'uploadify.swf', 'script' : 'uploadify.php', 'cancelImg' : 'cancel.png', 'auto' : true, 'folder' : '/uploads', 'onOpen' : function(){ $('#fileInput').uploadifySettings( 'scriptData', {'ext':$('#dirTimeStamp').val(), 'ext2':$('#txtEmail').val()} ); } }); }); // ]]></script>
Помимо того, что код обновляет файл scriptData внутри onOpen, вы также можете сделать это до начала загрузки. Это можно сделать, если вы установите auto на false, поэтому вам нужно будет вызвать uploadifyUpload()
вручную.
Взгляните на принятые ответы в этой теме .