Проблема с отправкой дополнительных данных публикации на сервер с помощью загрузки

StackOverflow https://stackoverflow.com/questions/1970558

  •  21-09-2019
  •  | 
  •  

Вопрос

Я использую uploadify на странице, которая позволяет пользователю загружать изображения, а также поле категории, в которое можно отправлять эти изображения.Теперь я вижу, что uploadify предоставляет метод «scriptData», который позволяет мне отправлять пары «ключ-значение» в скрипт uploadify.php.Но проблема в том, что метод scriptData получает свои значения при загрузке страницы (инициализация загрузки).Таким образом, когда пользователь меняет значения на странице, scriptData по-прежнему имеет только значения по умолчанию, которые были при загрузке страницы.

Есть ли что-нибудь вокруг этого?

Бесконечно благодарен!

Возможное решение: Я читал инструкцию дальше и обнаружил, что изменить настройки можно через вызов функции.Возможно, на правильном пути?

$('#fileInput').uploadifySettings('scriptData', getKeyValuePairs()).uploadifyUpload();

работаю над этим сейчас..

Это было полезно?

Решение

вам нужно будет получить текущее состояние ввода пользователя с помощью одного из обратных вызовов uploadify:onOpen или onSelect.Посмотрите их документация для правильного.Я думаю, onOpen более надежен, поскольку он проверяет текущее состояние пользовательского ввода каждый раз, когда начинается загрузка.Тем не менее, вам может потребоваться отключить другие пользовательские вводы во время загрузки или по-прежнему требовать от пользователя отправки формы, в противном случае любой пользовательский ввод, выполненный после начала последней загрузки, будет потерян.

В любом случае, я нашел это на их форуме и поместил бы на 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() вручную.

Посмотрите принятые ответы в эта тема.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top