Задать вопрос
Контакты

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (11)

Лучшие ответы пользователя

Все ответы (7)
  • Как загружать файлы на сервер через ajax drag and drop?

    luemerg
    @luemerg Автор вопроса
    и вот решение выложу на всякий случай если кому то будет интересно
    $(document).ready(function() {
        
    	var dropZone = $('#dropZone'),
    	maxFileSize = 2000000; 
        
    	if (typeof(window.FileReader) == 'undefined') {
    		dropZone.text('Не поддерживается браузером!');
            	dropZone.addClass('error');
        	};
        
        	dropZone[0].ondragover = function() {
            	dropZone.addClass('hover');
            	return false;
        	};
        
        	dropZone[0].ondragleave = function() {
            	dropZone.removeClass('hover');
            	return false;
        	};
        
        	dropZone[0].ondrop = function(event) {
            	event.preventDefault();
            	dropZone.removeClass('hover');
            	dropZone.addClass('drop');
            
            var file = event.dataTransfer.files[0];
            
            if (file.size > maxFileSize) {
            	dropZone.text('Файл слишком большой!');
            	dropZone.addClass('error');
            	return false;
            };
            
            var xhr = new XMLHttpRequest();
            xhr.upload.addEventListener('progress', uploadProgress, false);
            xhr.onreadystatechange = stateChange;
            xhr.open('POST', 'ui/ui-upload/upload.php');
    	xhr.setRequestHeader('X-FILE-NAME', 'file.name');
            var fd = new FormData
    	fd.append("file", file)
    	xhr.send(fd)
        };
        
        	function uploadProgress(event) {
            	var percent = parseInt(event.loaded / event.total * 100);
        	};
        
    	function stateChange(event) {
            	if (event.target.readyState == 4) {
                		if (event.target.status == 200) {
                    		
                		} else {
                    		dropZone.text('Произошла ошибка!');
                    		dropZone.addClass('error');
            		};
            	};
        	};
    });
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (30)