[gray]
[red]jQuery-File-Upload Отправить файлы асинхронно[/red]
Иногда вы хотите получить дополнительные параметры запроса асинхронно с помощью
AJAX перед отправкой файлов на сервер загрузки.
Переопределение дополнения обратного вызова
Один из способов сделать это путем переопределения по умолчанию добавить (add)
обратного вызова основного загрузка файлов плагина и вызова submit ()
на данных (data parameter) параметров после получения ваших параметров и установив их в качестве объекта FormData:
Code
$('#fileupload').fileupload({
add: function (e, data) {
$.getJSON('/example/url', function (result) {
data.formData = result; // e.g. {id: 123}
data.submit();
});
}
});
UI версии плагина загрузки файлов использует этот подход, чтобы сделать загрузки шаблонов и вызывает data.submit ()
после нажатия на кнопку пуска.
Если вы хотите переопределить дополнения обратного вызова, но все же хотите сохранить особенности (UI)
пользовательского интерфейса версии этого дополнения обратного вызова,
вы можете назвать это следующим образом, с помощью прототипа собственности виджета (UI) пользовательского интерфейса:
Code
$('#fileupload').fileupload({
add: function (e, data) {
$.getJSON('/example/url', function (result) {
data.formData = result; // e.g. {id: 123}
$.blueimp.fileupload.prototype
.options.add.call(this, e, data);
});
}
});
Однако, это также означает, что шаблон загрузки не оказывают пока вы не будете возвращается AJAX вызова.
Обратный вызов опции С помощью submit()
Другой способ заключается в использовании варианта обратного вызова отправки.
Такой подход позволяет сделать загрузки шаблонов и только получить
ваши дополнительные параметры при загрузка файлов действительно представляются:
Code
$('#fileupload').fileupload({
submit: function (e, data) {
var $this = $(this);
$.getJSON('/example/url', function (result) {
data.formData = result; // e.g. {id: 123}
$this.fileupload('send', data);
});
return false;
}
});
Возвращением в ложных обратного вызова submit() предотвращает загрузки от начала
(см. параметры документации).загрузки запускается вручную
после получения дополнительных параметров, используя File Upload submit() API метод.
[/gray]