Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将二进制blob(带有XML文件)发送到客户端时遇到问题_Javascript_Xml_Binary_Blob_Transform - Fatal编程技术网

Javascript 将二进制blob(带有XML文件)发送到客户端时遇到问题

Javascript 将二进制blob(带有XML文件)发送到客户端时遇到问题,javascript,xml,binary,blob,transform,Javascript,Xml,Binary,Blob,Transform,服务器向我发送一个包含blob的byte[]数组(其中包含XML内容)的对象。JavaSpring将这个字节数组转换为base64格式,所以最后在客户端,我将获得blob的base64数据 我从服务器获得的响应: 来自服务器的响应:{content:“base64BlobHere”} 在客户端,我请求获取xml内容 getXmlContent() { //makeRequestService.getXmlContent is only an observable that is making

服务器向我发送一个包含blob的byte[]数组(其中包含XML内容)的对象。JavaSpring将这个字节数组转换为base64格式,所以最后在客户端,我将获得blob的base64数据

我从服务器获得的响应:

来自服务器的响应:{content:“base64BlobHere”} 在客户端,我请求获取xml内容

getXmlContent() {

//makeRequestService.getXmlContent is only an observable that is making a GET Request

this.makeRequestService.getXmlContent.subscribe((response)=> {

    const file = new FileReader();
    file.onload = res => {
      //Here I should be able to read the content of the file as text/string.
       console.log(res.target);
     };

     file.readAsText(b64ToBlob(response.content));
    })
}
为了从文件中读取数据,我尝试将base64内容转换为blob以获取数据

 b64ToBlob(b64Data, contentType = "text/xml", sliceSize = 512) {

    const byteCharacters = atob(b64Data);

    const byteArrays = [];

    for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {

      const slice = byteCharacters.slice(offset, offset + sliceSize);

      const byteNumbers = new Array(slice.length);

      for (let i = 0; i < slice.length; i++) {

        byteNumbers[i] = slice.charCodeAt(i);

      }

      const byteArray = new Uint8Array(byteNumbers);

      byteArrays.push(byteArray);

    }

    const blob = new Blob(byteArrays, { type: contentType });

    return blob;
  }

b64ToBlob(b64Data,contentType=“text/xml”,sliceSize=512){
常量ByTechCharacters=atob(B64数据);
常量字节数组=[];
for(让offset=0;offset

我想我遗漏了什么,我试图从xml文件中读取数据。我很高兴收到一些关于如何处理此问题的建议。

您能否与我们共享Blob数据,或者在b64Toblob函数之前和之后的console.log结果是什么?您好,作为响应。我将获得下一个base64值: