@Genri_Rus

Можно ли вообще передать файлы в data объект ajax?

Пытаюсь передать на сервер файлы с помощью:
<form action="" method="post" id="form">
    <textarea name="message" id="message" placeholder="Сообщение" rows="5" maxlength="3000"cols="80"></textarea>
    <input name="files" type="file" multiple="">
</form>

$(document).on('submit', '#form', function(e) {
  
  var data = {}, form = false;
  
  form  	= $(this).formSerialize().trim(),
  formFiles = $(this).find('input[type="file"]')[0].files;
  
  $.each(formFiles, function(key, value) {
    data.files = value;
  });
  
  data.form = form;
  
  $(this).ajaxSubmit({
    type: 'POST',
    url: send_form.ajax_url,
    data: data,
    dataType: 'json',
    success: function(data) {
      console.log(data);
    },
    error: function(xhr) {
      
    }
  });
});


Я использую плагин: jquery form plugin, у него есть возможность принимать файлы, но как передать файлы в data ?

Почему-то файлы передаются в (binary):
5edd26c6b78ca701177426.png

А вот как передать файлы в data, но у меня ошибка из-за того, что ajax передает строковые сереализованные данные:

5edd2735c5365621359860.png
  • Вопрос задан
  • 125 просмотров
Пригласить эксперта
Ответы на вопрос 1
@PeeX
Я не знаю что там у вас за плагин, но есть стандарты, которые описывают как могут передаваться формы (не важно сколько там файлов)
для начала можно глянуть тут
https://developer.mozilla.org/ru/docs/Web/HTTP/Met...
https://learn.javascript.ru/xhr-forms

и пихать данные куда попало не стоит, но если очень хочется, то сами выбираете формат передачи, но и на сервере тогда придется писать разбор того что вы нагородили (по-моему это лишнее)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы