【问题标题】:How to use xmlhttprequest in Firefox with binary data, f.e. images?如何在 Firefox 中使用带有二进制数据的 xmlhttprequest,f.e.图片?
【发布时间】:2015-11-16 03:20:29
【问题描述】:

我正在看

function readDataFromURL(fuFullHttpURL, fuCallMeOnLoad) {
    var MyThis = this;
    this.fullHttpURL = fuFullHttpURL;
    this.callMeOnLoad = fuCallMeOnLoad;
    var oReq = new XMLHttpRequest();
    oReq.open("GET", MyThis.fullHttpURL, true);
    oReq.responseType = "arraybuffer";
    oReq.onload = function(oEvent) {
        var blob = new Blob([oReq.response], {type: "image/jpg"});
        MyThis.callMeOnLoad(blob);
    };
    oReq.send();
}

但这仅用于下载。如何使用此代码上传? 当我在前几年尝试使用 xmlhttprequest 下载图像时,下载的大小有限制。还有尺寸限制吗? 以前每个浏览器处理这个大小限制的方式都不一样,所以我自己无法测试。

编辑:https://stackoverflow.com/a/18120473/3716796 似乎解释了上传。

【问题讨论】:

    标签: javascript firefox binary xmlhttprequest


    【解决方案1】:

    您可以使用FormData 在 XMLHttpRequest 中发送文件,如下所示。虽然 Chrome & FF 支持很好,但只能在 IE10 或更高版本上运行。

      var xhr = new XMLHttpRequest();
      var file = document.getElementById("fileUpload");
      var formData = new FormData();
      formData.append("upload", file.files[0]);
      xhr.open("post", "your-url", true);
      xhr.setRequestHeader("Content-Type", "multipart/form-data");
      xhr.upload.onload = function(event){
        // handle successful upload
      };
      xhr.send(formData);  
    

    【讨论】:

    • 泰!所以我很确定我现在原则上可以处理上传下载。 (我也找到了stackoverflow.com/a/18120473/3716796) - 所以只有我读过的下载大小限制的问题。 (我只能在 Firefox 中测试,由于这里的一些当前特定设置,我不确定我的测试是否可靠。)
    • 我在网页中有一些动态创建的图像标签。如何访问图像数据并上传?
    • 有关下载限制的更多信息,请参阅this
    • 您使用的是canvas 还是只使用img
    • 我实际上有一个画布。
    猜你喜欢
    • 1970-01-01
    • 2010-11-08
    • 2019-07-10
    • 2011-11-07
    • 2011-08-18
    • 2011-05-21
    • 2015-10-26
    • 1970-01-01
    相关资源
    最近更新 更多