File drag and drop event in jquery File drag and drop event in jquery ajax ajax

File drag and drop event in jquery


I came across this question while researching some AJAX file upload techniques.

I created a drag and drop upload script today (its still in proof of concept stage but heres the basic steps that I took.

$('drag-target-selector').on('drop', function(event) { //stop the browser from opening the file event.preventDefault(); //Now we need to get the files that were dropped //The normal method would be to use event.dataTransfer.files //but as jquery creates its own event object you ave to access  //the browser even through originalEvent.  which looks like this var files = event.originalEvent.dataTransfer.files; //Use FormData to send the files var formData = new FormData(); //append the files to the formData object //if you are using multiple attribute you would loop through  //but for this example i will skip that formData.append('files', files[0]); }

now you can send formData to be processed by a php script or whatever else you want to use. I didn't use jquery in my script as there a lot of issues with it it seemed easier to use regular xhr. Here is that code

var xhr = new XMLHttpRequest();    xhr.open('POST', 'upload.php');    xhr.onload = function() {            console.log(xhr.responseText);    };    xhr.upload.onprogress = function(event) {            if (event.lengthComputable) {                    var complete = (event.loaded / event.total * 100 | 0);                    //updates a <progress> tag to show upload progress                    $('progress').val(complete);            }    };xhr.send(formData);