user3710480
user3710480

Reputation: 21

Drag file upload, error in $_FILES

I try to create simple "drag&drop" file upload. This my code:

HTML (index.html):

  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
  <script src="script.js"></script>

    <form action="upload.php">
      <div id="dropZone">
        Drag File
      </div>
    </form>

JavaScript (script.js):

$(document).ready(function() {

    var dropZone = $('#dropZone'),
        maxFileSize = 1000000; 

    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('Max size 1mb!');
            dropZone.addClass('error');
            return false;
        }

        var xhr = new XMLHttpRequest();
        xhr.upload.addEventListener('progress', uploadProgress, false);
        xhr.onreadystatechange = stateChange;
        xhr.open('POST', 'upload.php');
        xhr.setRequestHeader('X-FILE-NAME', file.name);
        xhr.send(file);
        alert(xhr.responseText);
    };

    function uploadProgress(event) {
        var percent = parseInt(event.loaded / event.total * 100);
        dropZone.text('Loading: ' + percent + '%');
    }


    function stateChange(event) {
        if (event.target.readyState == 4) {
            if (event.target.status == 200) {
                dropZone.text('Ok!');
            } else {
                dropZone.text('Error!');
                dropZone.addClass('error');
            }
        }
    }

});

PHP (upload.php):

<?php
$uploaddir = 'upload/';
$uploadfile = $uploaddir.basename($_FILES['file']['name']);
if (!$_FILES)
{
move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile);
}
?>

My problem is that file can't upload in folder, $_FILES['file']['tmp_name'] is empty... Does anybody have an idea, where my mistake?

thank you...

Upvotes: 0

Views: 678

Answers (1)

Krish R
Krish R

Reputation: 22721

Try this, Change your condition

if (isset($_FILES['file']))
{
 move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile);
}

Upvotes: 1

Related Questions