Javascript jQuery文件上传预处理时文件数据在哪里?http://blueimp.github.io/jQuery-File-Upload/

Javascript jQuery文件上传预处理时文件数据在哪里?http://blueimp.github.io/jQuery-File-Upload/,javascript,jquery,jquery-file-upload,blueimp,Javascript,Jquery,Jquery File Upload,Blueimp,我开始玩弄优秀的文件上传项目 从的“文件处理选项”部分可以看出,jquery.fileupload-process.js将允许我解析甚至修改文件的二进制数据(文件数组-应用了处理的结果,原始文件与原始上传的文件) (解析、附加、加密或对其执行某些操作) 但就我的一生而言,我似乎无法弄清楚阵列中的实际文件数据在哪里,以便在上传之前对其进行预处理 数据数组的哪个部分包含“something.pdf”二进制文件?以便我可以在上传之前对其进行解析和转换 //FROM: jquery.fileup

我开始玩弄优秀的文件上传项目

从的“文件处理选项”部分可以看出,jquery.fileupload-process.js将允许我解析甚至修改文件的二进制数据(文件数组-应用了处理的结果,原始文件与原始上传的文件)

(解析、附加、加密或对其执行某些操作)

但就我的一生而言,我似乎无法弄清楚阵列中的实际文件数据在哪里,以便在上传之前对其进行预处理

数据数组的哪个部分包含“something.pdf”二进制文件?以便我可以在上传之前对其进行解析和转换

    //FROM: jquery.fileupload-process.js
    //The list of processing actions:
    processQueue: [
        {
            action: 'log'

        }
    ],
    add: function (e, data) {
        var $this = $(this);
        data.process(function () {
            return $this.fileupload('process', data);
        });
        originalAdd.call(this, e, data);
    }
},

processActions: {

    log: function (data, options) {
        console.log(data.files[0]); //Is it here?
        console.log(data); //Is it here?
        console.log(data.files[data.index]); //Is it here?
        console.log(data.files[data.index].name); //Is it here?

                                           //where?

谢谢。

访问当前处理的文件的正确方法如下:

var file = data.files[data.index];
对于支持的浏览器,这是一个文件对象

要检索实际文件数据,我们必须使用以下接口:

var fileReader = new FileReader();
fileReader.onload = function (event) {
    var buffer = event.target.result;
    // TODO: Do something with the ArrayBuffer containing the file's data
};
fileReader.readAsArrayBuffer(file);

在@Sebastian的答案的基础上,解释将文件阅读器放在何处,以及如何使用fileupload插件,可能会很有用。(我本想对@Sebastian的回答发表评论,但评论栏中没有空格)

我已将其内置到流程操作中(使用
readAsText
而不是
readAsArrayBuffer
),如下所示:

alertText: function(data, options) {
         var dfd = $.Deferred(),
            file = data.files[data.index];
        var fileReader = new FileReader();
        fileReader.onload = function (event) {
            var fileText = event.target.result;
            alert('Text of uploaded file: '+ fileText);
       }; 
        fileReader.readAsText(file);
        return dfd.promise();
    }