如何阅读dropzone文件

时间:2016-05-27 08:38:24

标签: jquery json ajax

如何从dropzone读取文件,我可以将文件拖放到dropzone中但是我没有得到如何读取放入dropzone的文件,如何访问丢弃的文件到动作类我正在使用struts 1.1。,请你帮我解决这个问题。

这是我使用的dropzone的代码片段。我在dropzone中创建了一个ajax调用,它会将文件名传递给action类,但是我只得到字符串值,而我需要的文件列表是落入了dropzone

$(function() {      
    var myDropzone = new Dropzone("#my-dropzone");
    myDropzone.on("addedfile", function(file) {

        $.ajax({ type: "POST", async: false, url: "/x/abc.do", data: { filename: file } })
                            .done(function( msg ) { console.log( " Uplaod -> " + msg ); });
    });
});

我正在阅读动作类中的文件名,如下所示

String file = request.getParameter("filename");

上面的行仅提供文件名,但我需要文件大小和我放入dropbox的文件列表

注意:我正在使用struts,如何为dropzone使用enctype。

你可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

您可以使用dropzone事件来实现此目的。

x == i

答案 1 :(得分:0)

如果文件不是太大,您可以使用FileReader。答案显示在CefSharp中。

$(function() {      
    var myDropzone = new Dropzone("#my-dropzone");
    myDropzone.on("addedfile", function(file) {

const reader = new FileReader();
        reader.onload = () => {
            const fileAsBinaryString = reader.result;
            // do whatever you want with the file content
        };
        reader.onabort = () => console.log('file reading was aborted');
        reader.onerror = () => console.log('file reading has failed');

        reader.readAsBinaryString(file);

        $.ajax({ type: "POST", async: false, url: "/x/abc.do", data: { filename: file } })
                            .done(function( msg ) { console.log( " Uplaod -> " + msg ); });
    });
});

您还可以使用除readAsBinaryString之外的其他功能。例如readAsText(file, 'UTF-8')。所有这些都列在react-dropzone github page