使用reactjs下载的.zip文件损坏了内容

时间:2019-08-02 10:01:21

标签: javascript reactjs download zip

我的后端(在nodejs中)使用Web服务,该服务允许从远程服务器下载文件。它必须将下载“返回”到前端的我的reactJS Webapp。

使用招摇测试服务时,下载功能正常。因此,我的后端返回了一个包含原始数据的字符串,我将该字符串重新插入以下载。

我的前端治疗是这样的:

downloadFile(){
    let path = this.props.result.link;
    let name = this.props.result.fileName;

    downloader.downloadAFile(path,name).then( response => {
      if (response){
        if (response.success == true) {
          let bytes = this.data64ToArrayBuffer(response.data);   
          var file = new File([bytes],this.props.result.fileName+".zip",{type: "application/zip"});
          fileSaver.saveAs(file);

        } else {
          console.log(response);
          if (response.data == "Fichier introuvable."){
            window.alert(response.data);
          }
        }
      }
    }).catch(function (error){
      console.log(error);
    });
  }

dataToArrayBuffer = (data) => {
    var binaryString = data;
    console.log(binaryString);
    var binaryLen = binaryString.length;
    var bytes = new Uint8Array(binaryLen);
    for (var i = 0; i < binaryLen; i++) {
       var ascii = binaryString.charCodeAt(i);
       bytes[i] = ascii;
    }
    return bytes;
 }

对于名为“ test.txt”的文件,该文件包含“ test”作为文本,在“ / PATH / TO / FOLDER”路径中,API应该建议下载一个压缩文件,命名为“ test.txt.zip” ,其中包含所有文件夹树/ PATH / TO / FOLDER,最后一个文件夹中是提到的文件。

我在前端进行的下载在某种程度上是有效的,因为它会下载一个带有正确名称,正确大小和正确文件夹树的zip。 但是,路径最终文件夹中的test.txt文件似乎已损坏,因为当我尝试在7zip中打开它时,出现以下错误:CRC失败:test.txt。

我怀疑这是如何处理原始数据的问题。因为我被有效地阻止了,所以我会采取任何提示和线索。

0 个答案:

没有答案