Множественная загрузка файлов на jquery

06.05.2018  08:01

В дополнение к записи Ajax file upload + Bitrix написал для одного проекта возможность множественной загрузки файлов. Проблема в том, что у инпута типа file хоть и есть параметр multiple, но он крайне плохо поддерживается браузерами и абсолютно не поддерживается мобильными устройствами что на Android, что на богомерзкой iOS.

Реализация такая:
function addFile(f){
	var file_data = $(f).prop('files')[0];
	var form_data = new FormData();                                 
	form_data.append('file', file_data);                           
	$.ajax({
		url: '/ajax/file_upload.php', // point to server-side PHP script 
		dataType: 'text',  // what to expect back from the PHP script, if anything
		cache: false,
		contentType: false,
		processData: false,
		data: form_data,                         
		type: 'post',
		success: function(php_script_response){
			var cfile = $("#orderfrm input[name=fcfile]").val();//attr("value");
			if (cfile.length) $("#orderfrm input[name=fcfile]").val(cfile + ' , ' + php_script_response);
			else $("#orderfrm input[name=fcfile]").val(php_script_response);
			$("#orderfrm .inp-file-wrap").append('');
			// alert(php_script_response + 'ok'); // display response from the PHP script, if any
		}
	});
	return false;
}


т.е. после изменения поля input type file ниже него явасккрипт (функция на jQuery) рисует ещё одно такое же поле. В результате пути до файлов я записываю в текстовое поле input[name=fcfile] через запятую. Но это частный случай.

Пример серверного скрипта: Ajax file upload.


перейти в Блог | Блог (стр. 3)

Ударим лайками по бездорожью, разгильдяйству и бюрократизму!


Ключевые слова (тэги): JavaScript 24  jQuery 19  web-программирование 79  молодым домохозайкам 1  

Вам есть что сказать — ну я же чую.
Высказаться о наболевшем, я выслушаю:
Имя


email (не публикуется)