首页 > 解决方案 > 在使用 javascript 使用 FileReader 上传之前更改文件的内容

问题描述

是否可以在使用 javascript 上传蜜蜂之前更改文件的内容?我可以阅读内容,但更改它似乎是不可能的。

    f = document.getElementById('input').files[0];
    var reader = new FileReader();
    reader.onload = function(e){
        console.log(e.target)
        e.target.result = "new content"
        console.log(e.target);
    };
    reader.readAsDataURL(f);

标签: javascriptfile-uploaduploadfilereader

解决方案


您不能重写文件输入的值。

您可以获取文件的内容并使用 Ajax 发送它。

reader.onload = function(e){
    const data = new FormData();
    const url = this.result;
    const blob = convertUrlToBlob(url);
    data.append("file_input", blob, "filename.ext");
    const xhr = new XMLHttpRequest();
    xhr.open('POST', '/example/url');
    xhr.send(data);
};

我不会详细介绍如何编写函数,这个问题convertUrlToBlob涵盖了它。


推荐阅读