javascript - 上传前更改文件内容

标签 javascript html 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);
}

有什么开箱即用的方法,还是我需要求助于猖獗的黑客:) :)

最佳答案

如何返回 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 小时后回来查看。

关于javascript - 上传前更改文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24400415/

相关文章:

javascript - 使用 Google 脚本的 MWS 发布请求

php - 不要删除 CakePHP 分页中事件页面上的 "a"链接

文件 FileReader 的 JavaScript for 循环

javascript - 按类查找 Angular 元素的最佳方法是什么?

php - 计算点击次数并将其存储在 FTP 中

javascript - $(selector).css() 不工作

html - 如何在html中为选定的选项赋予样式

java - Eclipse 中的文件阅读器

javascript - Chrome FileReader 为大文件返回空字符串 (>= 300MB)

javascript - 回调不是函数: what am i doing wrong?