#jquery #ajax #forms #file-upload
#jquery #ajax #формы #загрузка файла
Вопрос:
Я добавил файл ввода в форму, и, похоже, я не могу заставить файл пройти через. Вот форма (за вычетом всех остальных полей)
<form method="post" action="ajax_mm_order.php" enctype="multipart/form-data" id="mm_form">
<input id="image_file" type="file" name="photo_for_card" />
<input type="button" id="submit_button" value="Place Order" />
</form>
Javascript / jquery, который его отправляет:
$.ajax({
type: "POST",
url: "ajax_mm_order.php",
data: $("#mm_form").serialize(),
success: function(msg){
$(".form_style_header").fadeOut("slow");
$(form_css).fadeOut("slow", function(){
$(form_complete).fadeIn("slow");
});
}
});
когда данные формы попадают ajax_mm_order.php все остальные данные получены просто отлично, но $_FILES полностью пуст. Что-то не так с моим вызовом ajax?
Ответ №1:
Вы не можете отправить файл через ajax. Наиболее распространенный способ на самом деле является просто прославленным «взломом» — многие библиотеки в основном создают iframe, а затем публикуют содержимое из этого iframe на ваш URL (и поскольку это всего лишь iframe, это не приводит к полному обновлению вашей родительской страницы).
Я бы попытался найти хорошую библиотеку загрузки файлов ajax, которую вы хотите использовать. Мне лично нравится эта библиотека.
Комментарии:
1. Это совершенно верно. Я только удивлен, что jquery автоматически не ищет поле файла в форме и не выполняет метод IFRAME, если таковое найдено.