使用“jQuery Form Plugin”手动发送拖放文件

时间:2014-09-25 22:34:36

标签: javascript jquery ajax forms

我有点困在这里,我需要帮助.. 我试图在我的网站上拖放文件,我已经从头开始,因为我找不到任何符合我需求的插件。

这是我到目前为止所做的:

文件丢弃检测:

var dropzone = document.getElementById('holder');

dropzone.ondragover = function(){
            this.className = 'well pull-left display-ex-pic drag_hover';
            return false;
        }

dropzone.ondragleave = function(){this.className = 'well pull-left display-ex-pic'; return false;}

        dropzone.ondrop = function(e){
            e.preventDefault();
            this.className = 'well pull-left display-ex-pic';
            readURLs(e.dataTransfer.files);//display the pictures
            images = e.dataTransfer.files;
            images_obj = e.dataTransfer;
        }

通过AJAX提交表单:

formImages = new FormData();
var status = $('#status');
$('#image_upload').hide();
$('form').ajaxForm({

    beforeSend: function() {
    $('#image_upload').show();
    $('#math li .mathquill-editable').each(function() {
        a = $('#math-text').val();
        $('#math-text').val(a + $(this).mathquill('latex') + '[{line}]');
    });

    for (var x = 0; x < images.length; x = x + 1) {
        formImages.append(images[x].fileName, images[x]);
    }
    },
    data: {'files[]': formImages},
    uploadProgress: function(event, position, total, percentComplete) {
        var percentVal = percentComplete + '%';
        $('#image_upload').attr('aria-valuenow', percentComplete).css('width', percentComplete + '%').html(percentComplete + '%');

    },
    complete: function(xhr) {
        status.html(xhr.responseText);
    }
});

现在我的问题是,在用户删除文件之后,文件会使用e.dataTransfer.files进入文件数组,然后我想使用“jQuery”提交带有进度条的所有文件以及所有表单数据表格插件“从这里http://malsup.com/jquery/form/

有谁知道如何手动使用“jQuery Form Plugin”发送文件?

1 个答案:

答案 0 :(得分:1)

我碰巧发现了这个插件,它在很短的实现时间内完美运行。

http://www.dropzonejs.com/#installation

基本上:

  1. 包含插件
  2. 包含HTML
  3. 编码您的文件
  4. 服务器端的接收方(URL中包含的示例)
  5. 调整 CSS。