Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Динамическая загрузка файлов (https://javascript.ru/forum/misc/73614-dinamicheskaya-zagruzka-fajjlov.html)

Samsam 28.04.2018 16:58

Динамическая загрузка файлов
 
Динамическая загрузка файлов


<input onchange="uploadFile()" type='file' id='upload'>


function uploadFile() {
	var data = new FormData(); //New FormData
	data.append('file', $("#upload").prop('files')[0]);

	$.ajax({ 
			url: 'upload.php', 
			type: 'POST',
			data: data,
			processData: false, 
			contentType: false,
			success: function(respond){
				alert('ok');
				}
		});
	}


Очень долго передаёт данные файла. Хотя я даже не загружаю их. а просто хочу передать данные. Как это исправить ?

Samsam 28.04.2018 18:15

да чего то затормозил )) .. для получения данных он всё равно предварительно загружает на сервер, верно ?

а вот ещё один момент.

...
xhr: function(){

var xhr = $.ajaxSettings.xhr(); // получаем объект XMLHttpRequest
xhr.upload.addEventListener('progress', function(e){
...
}
});
Почему e.loaded показывает загрузку файла намного быстрее чем на самом деле ?

Samsam 28.04.2018 18:23

файл ещё не загрузился а e.loaded выдаёт что загрузилось

Samsam 28.04.2018 18:35

$.ajax({ 
			url: 'upload.php', 
			type: 'POST',
			data: data,
			processData: false, 
			contentType: false,
		 	xhr: function(){
				var xhr =  new XMLHttpRequest(); 
				xhr.upload.addEventListener('progress', function(evt){
				  if(evt.lengthComputable) { 
					var percentComplete = Math.ceil(evt.loaded / evt.total * 100 );
					$("#progress").css('width', percentComplete+'%');
				  }
				}, false);
				return xhr;
			}, 
			
			success: function(respond){
				alert('ВОТ ЗДЕСЬ Я ПОНИМАЮ ЧТО ФАЙЛ ЗАГРУЗИЛСЯ');
				}
		});


но прогресс бар быстрее заполняется

Samsam 28.04.2018 18:49

прогресс бар заполняется здесь ->> $("#progress").css('width', percentComplete+'%');


выполняется после удачной загрузки, ->> alert();

но прогресс бар заполнятся за 2-3 секунды хотя я загружаю 100мб . ну а alert() выходит уже после удачной загрузки

Samsam 28.04.2018 19:08

Нет не локалка

Цитата:

Сообщение от Rise (Сообщение 484367)
а за сколько надо по сети же не передается?

. что не передаётся ?

Samsam 28.04.2018 19:19

да пустой

Samsam 28.04.2018 20:55

Да это так. Но вопрос всё же в силе.

А вообще как именно работает эта функция ?

var xhr = new XMLHttpRequest();
xhr.upload.addEventListener('progress', ....

Samsam 28.04.2018 21:34

Цитата:

Сообщение от Rise (Сообщение 484385)

Там внизу есть пример. Попробуйте выбрать и загрузить файл побольше.
то уведите что индексация прогресса за пару секунд закончится. хотя понятно что за это время файл не загрузится

Samsam 28.04.2018 21:52

там нет ограничений


Часовой пояс GMT +3, время: 06:24.