Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image jQuery拖放图像上传功能_Image_Jquery_File Upload_Drag And Drop - Fatal编程技术网

Image jQuery拖放图像上传功能

Image jQuery拖放图像上传功能,image,jquery,file-upload,drag-and-drop,Image,Jquery,File Upload,Drag And Drop,我试图通过jQuery编写自己的简单AJAX图像上传脚本。我发现了一些插件,但它们太过定制,无法满足需要,我无法让它们正常工作 我只是想通过某种方式检测用户何时将图像拖放到页面上。从那里我确信上传数据并移动到/cache/目录并允许更多选项并不困难 但现在我完全被拖放功能所困扰。真的不知道我该怎么做。需要什么类型的事件处理程序?我是否需要自定义自己的事件处理程序代码?任何建议都将不胜感激 需要什么类型的事件处理程序 Drag'n'drop需要一个HTML5浏览器——但这几乎是所有的浏览器了 我建

我试图通过jQuery编写自己的简单AJAX图像上传脚本。我发现了一些插件,但它们太过定制,无法满足需要,我无法让它们正常工作

我只是想通过某种方式检测用户何时将图像拖放到页面上。从那里我确信上传数据并移动到/cache/目录并允许更多选项并不困难

但现在我完全被拖放功能所困扰。真的不知道我该怎么做。需要什么类型的事件处理程序?我是否需要自定义自己的事件处理程序代码?任何建议都将不胜感激

需要什么类型的事件处理程序

Drag'n'drop需要一个HTML5浏览器——但这几乎是所有的浏览器了

我建议不要从头开始,因为需要相当多的代码——我非常喜欢这个包装器,它可以作为jQuery插件来实现

使用类div在文档中定义元素后,可以使用以下命令对其进行初始化以接受删除的文件:

function fileSetUploadPercent(percent, divID){

    var uploadString = "Uploaded " + percent + " %";

    $('#'.divID).text(uploadString);
}
function fileUploadStarted(index, file, files_count){

    var divID = getDivID(index, file);

    createFileUploadDiv(divID);     //create the div that will hold the upload status

    fileSetUploadPercent(0, divID); //set the upload status to be 0
}

function  fileUploadUpdate(index, file, currentProgress){

    //Logger.log("fileUploadUpdate(index, file, currentProgress)");

    var string = "index = " + index + " Uploading file " + file.fileName + " size is " + file.fileSize + " Progress = " + currentProgress;
    $('#status').text(string);

    var divID = getDivID(index, file);
    fileSetUploadPercent(currentProgress, divID);
}

function fileUploadFinished(index, file, json, timeDiff){

    var divID = getDivID(index, file);
    fileSetUploadPercent(100, divID);

    if(json.status == "OK"){
        createThumbnailDiv(index, file, json.url, json.thumbnailURL);
    }
}



function    fileDocOver(event){
    $('#fileDropTarget').css('border', '2px dashed #000000').text("Drop files here");
}
$(".fileDrop").filedrop({

            fallback_id: 'fallbackFileDrop',
            url: '/api/upload.php',
            //    refresh: 1000,
            paramname: 'fileUpload',
            //    maxfiles: 25,           // Ignored if queuefiles is set > 0
            maxfilesize: 4,         // MB file size limit
            //    queuefiles: 0,          // Max files before queueing (for large volume uploads)
            //    queuewait: 200,         // Queue wait time if full
            //    data: {},
            //    headers: {},
            //    drop: empty,
            //    dragEnter: empty,
            //    dragOver: empty,
            //    dragLeave: empty,
            //    docEnter: empty,
            docOver: fileDocOver,
        //  docLeave: fileDocLeave,
            //  beforeEach: empty,
            //   afterAll: empty,
            //  rename: empty,
            //  error: function(err, file, i) {
            //    alert(err);
            //  },
            uploadStarted: fileUploadStarted,
            uploadFinished: fileUploadFinished,
            progressUpdated: fileUploadUpdate,
            //     speedUpdated
        });
接受上传的网页中有一个HTML

<div class='fileDrop'>
Upload a file by dragging it.
<span id='fileDropTarget'/>

</div>

通过拖动上传文件。

文件放置在外部工作,但最好是制作一个漂亮的大目标,上面写着“放置在这里”,这样用户就不会对需要将文件放置在哪里感到困惑。

可能太晚了。但是你应该检查一下这个插件(不是为了使用,而是看看源代码)。它们实现了一个与您想要的类似的拖放功能。具体看一下这个文件和onDrop方法: