@qu1kgg

Как отправить файл с другими данными через ajax?

Добрый вечер, есть форма:
<form method="post" id="prov" action="">
					<div class="input-wrapper">
					<input type="hidden" name="provid" value="12">
						<input id="provmsg" type="text" name="provmsg">
						<label for="provimg"><i class="fa fa-paperclip" aria-hidden="true"></i></label>
						<input id="provimg" type="file" name="provimg">
					</div>
				</form>
<button onclick="prov();" class="send">отправить</button>

Сама отправка:
function prov() {
	 var data = $('#prov').serialize();
    $.post("/engine/prov.php", data, function(r) {
      if(r.status == 'success') {
        if(typeof(r.msg) != 'undefined') {
			noti(r.status, r.msg);
	  }}
		else if(r.status == 'error') {
noti(r.status, r.msg);
      }
    }, "json");
    return false;
}

Как отправить файл со всеми данными?
  • Вопрос задан
  • 616 просмотров
Решения вопроса 1
npanuhin
@npanuhin
var formData = new FormData($('#prov').get(0)); // создаем новый экземпляр объекта и передаем ему нашу форму
$.ajax({
    url: "/engine/prov.php",
    type: "POST",
    contentType: false, // важно - убираем форматирование данных по умолчанию
    processData: false, // важно - убираем преобразование строк по умолчанию
    data: formData,
    success: function(json) {
        if (json) {
            // тут что-то делаем с полученным результатом
       }
    }
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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