上传前更改文件内容

时间:2014-06-25 04:51:48

标签: javascript html5 filereader fine-uploader fileapi

我想在上传到我们的服务器之前加密文件的内容..我们正在使用fineuploader。

我想做的是:

function onSubmitted(id)
{
    var file = uploader.getFile(id);
    var reader = new FileReader();

    reader.onload = function (e) {
      //encrypt here

      // but how do I save the file back to fineuploader?

      //then continue to submit/upload
     };

   reader.readAsArrayBuffer(file);
}

有没有办法开箱即用,或者我需要诉诸猖獗的hackery :) :)

1 个答案:

答案 0 :(得分:2)

如何返回false以拒绝来自onSubmit的文件,对其进行加密,然后通过addBlobs API方法重新提交加密版本。例如:

callbacks: {
    onSubmit: function(id) {
        if (!fileOrBlob.blob || !fileOrBlob.blob.encrypted) {
            var fileOrBlob = uploader.getFile(id),
                reader = new FileReader();

            reader.onload = function (e) {
                //encrypt here

                encryptedBlob.encrypted = true;
                uploader.addBlobs({name: fileOrBlob.name, blob: encryptedBlob});
            };

            reader.readAsArrayBuffer(file);

            return false;
        }
    }
} 

注意:以上内容尚未经过测试。如果您遇到严重问题,我会在大约9小时后再回来查看。

相关问题