Я на самом деле пытаюсь загрузить файл изображения с помощью метода jQuery ajax. Но у меня все еще есть две ошибки. Форма такая большая и имеет несколько входных файлов. Цель состоит в том, чтобы загружать файлы во время ввода пользователем текста в другие поля. Таким образом, кнопка «Отправить» используется для действия, действие основано на выборе изображения. Когда изменяется один входной файл, код AJAX должен работать.
Я пытался найти решение для стекового потока, так как в течение 1 часа менялось несколько синтаксисов, но ничего не работало.
Мой код здесь
<form id="form_animation" method='post' enctype='multipart/form-data' accept-charset='UTF-8' action=''>
<!-- something like 2 fieldsets and 15 input before my input file -->
<input type="file" name="animation_01_file" id="animation_01_file" data-line="1" accept="image/*">
<!-- few others input -->
</form>
jQuery side
$("input[type='file']").on('change', function(){
var form = $(this).get(0);
var fd = new FormData(form);
/*var file = $(this).prop('files')[0];
var fd = new FormData();
console.log(file);
fd.append('file', file);*/
/* var fd = new FormData( $('#form_animation')[0] );
===> return error type 'append'
*/
$.post(
"traitements_ajax.php", {
data: fd,
processData: false,
contentType: false,
cache: false
},
function myResult(text_result){
//some results here
},
"text"
);
Вы можете увидеть другую попытку в комментарии.
Ошибки всегда:
TypeError: 'append'вызывается для объекта, который не реализует интерфейс FormData.
или
TypeError: Аргумент 1 из FormData.constructor не реализует интерфейс HTMLFormElement.
Действительно спасибо за ваше время.