2013-10-31 2 views
3

Я пытаюсь обновить formData для каждого загружаемого фрагмента. Однако плагин загрузки фотографий Blueimps jquery позволяет вам устанавливать formData один раз в начале.Установить data.formData для каждого фрагмента

Причина, по которой мне нужно иметь возможность обновить formData, так я могу сообщить серверу, какой текущий кусок он находится, т.е. 3 из 24 кусков.

Вот мой код:

$('#fileupload').fileupload({ 
    maxChunkSize: 50024, 
    url: '/webpanel/upload/blueimp/', 
    dataType: 'json', 
    success: function (data, textStatus, jqXHR) 
    { 
     count = parseInt($('#chunk').val()) + 1; 
     $('#chunk').val(count);   
     data.formData = {    
      chunk: $('#chunk').val() 
     }; 
    }, 
    submit: function (e, data) 
    { 
     data.formData = { 
      fname: data.originalFiles[0].name, 
      chunks: Math.ceil(data.originalFiles[0].size/maxChunkSize), 
      chunk: $('#chunk').val() 
     }; 
    } 
}); 

Помощь оценили

ответ

3

Если вы не нашли решение, попробуйте использовать функцию добавления:

$('#fileupload').fileupload({ 
    add: function (e, data) { 
      data.formData = { 
      fname: data.originalFiles[0].name, 
      chunks: Math.ceil(data.originalFiles[0].size/maxChunkSize), 
      chunk: $('#chunk').val() 
      }; 
      data.submit(); 
    } 
}); 

Вам может понадобиться, чтобы посмотреть значение $ ('# chunk') и вызвать код выше, когда он изменится.

Я что-то вроде этого внутри AngularJS директивы, и получить вдохновение от: https://github.com/blueimp/jQuery-File-Upload/wiki/Submit-files-asynchronously#overriding-the-add-callback

+0

не имел шанс проверить это, но, похоже, это точно должно работать. Благодаря! – timsayshey

+0

Это не работает. –

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