mrusklon
@mrusklon
Не получается? Яростно гугли!

Как доработать функцию отправки формы ajax для отправки файлов?

$("form.megaForm").submit(function () { 
        var th = $(this);
        $.ajax({
            type: "POST",
            url: "mail.php", 
            processData: false,
            contentType: false,
            data: th.serialize(),
        }).done(function () {
            alert('выполенно');
        });
        return false;
    });

есть у меня такая вот заготовочка и с помощью ее я могу почти как угодно извращаться , но сала задача отправить файл , нагуглил что надо делать такую вещь
var data = new FormData();
но как ее применить к моему коду ? Я правильно понимаю что надо добавить как то в мой код вот сюда
data: th.serialize() или как то склеить мой th.serialize() и new FormData() ?
  • Вопрос задан
  • 187 просмотров
Пригласить эксперта
Ответы на вопрос 3
@petelinmn
Программист
Я примерно так делал, работает в IE9 в отличие от форм даты.

<form action='SaveFile'
		target="fileIframe"
		encType="multipart/form-data"
		method="post"
		role="document"
		id="file_upload_form">

	<iframe name="fileIframe"
			tabIndex="-1"
			id="fileIframe">
	</iframe>

	<input id="FileInput"
			name="upload"
			type="file"
			title="Выберите файл"
			onChange="document.getElementById('file_upload_form').submit()" />
	</form>
Ответ написан
@Abcdefgk
Кодировка FormData существует в природе для отправки на сервер "мультиформы", т.е. формы, в которой присутствуют и текстовые и бинарные данные (и поля, и файл). Для отправки только файла его вообще кодировать не надо (чего кодировать-то, поток единиц и нулей?). Едиственно что надо - отправить загодя на сервер его расширение, чтобы там к случайному имени для потока его прикрутить при сохранении.
Ответ написан
@M-ka
frontend присматривающийся к ror
необходимо не танцевать с бубном, вокруг аякс запроса, а взять готовое решение по отправке картинок с обратной связью... у меня обертка самописная вокруг обычного жк аякс, которой пользуюсь для всего и вся... и к ней так же прикрутил и отправку файлов по аяксу (взяв готовое, подправил у себя апи для работы инородного и все)
Ответ написан
Ваш ответ на вопрос

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

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