Показать сообщение отдельно
  #1 (permalink)  
Старый 09.12.2013, 17:21
Интересующийся
Отправить личное сообщение для Купэ Посмотреть профиль Найти все сообщения от Купэ
 
Регистрация: 23.03.2011
Сообщений: 26

Отправка файла при помощи ajax
Всем привет, помогите разобраться как загружать файлы на сервер при помощи ajax через input tupe="file", есть такой код: который формирует заголовки для отправки полей формы, вот только файл загружается на сервер пустой.

$(document).ready(function(){
	$("form[name='SIMPLE_FORM_1']").live("submit",function(){
		
		var form_link = $(this);	
		var xmlhttp = getXmlHttp();
		var boundary = String(Math.random()).slice(2);
		
		var boundaryMiddle = '--' + boundary + '\r\n';

		var boundaryLast = '--' + boundary + '--\r\n'

		var body = ['\r\n'];
		
		
		form_link.children("input").each(function(n,element){
		  
		  if ($(element).attr("name")  == "form_file_5"){	
			body.push('Content-Disposition: form-data; name="'+$(element).attr("name")+'"; filename="'+$(element).val()+'\r\nContent-Type: image/png\r\n\r\n\r\n');

		  }else{	
			body.push('Content-Disposition: form-data; name="'+$(element).attr("name")+'"\r\n\r\n'+$(element).val()+'\r\n');
		  }
		});	
		body = body.join(boundaryMiddle) + boundaryLast;


		xmlhttp.open('POST', '/bitrix/page_includes/form.php', true);
		xmlhttp.setRequestHeader('Content-Type','multipart/form-data; boundary=' + boundary);

 

		xmlhttp.onreadystatechange = function() {
		  if (xmlhttp.readyState == 4) {
			 if(xmlhttp.status == 200) {
				form_link.parent("#container").html(xmlhttp.responseText);
			}
		  }
		};
		xmlhttp.send(body);
		return false;

	});
})*
Ответить с цитированием