【问题标题】:Node-js -- Download and store file - Binary - Archieve corruptNode-js - 下载和存储文件 - 二进制 - 存档损坏
【发布时间】:2014-12-03 02:00:54
【问题描述】:

我正在使用 Node.js Dropbox API 读取文件,然后将其存储(在 Windows 上)。

它是一个重命名的 .zip 文件(Node Webkit 包 => .nw)

我的代码:

{responseType: "b"} 代表二进制。

client.readFile("package.nw", {responseType: "b"}, function(error, data) {
          if (error) {
            return showError(error);  // Something went wrong.
            throw new Error(error);
          }
            toastr.info("Storing update..");
            console.log(data);
            fs.writeFile("package.nw", data, 'binary', function(err) {
                if(err) {
                    return showError(error);
                }

                toastr.info("Update complete!");
            });
        });

当我尝试打开包裹时,它已损坏。

我怎样才能正确保存它? 在此先感谢,杰伦

【问题讨论】:

  • 我认为您最好使用{responseType: "buffer"},然后从writeFile 中删除您的'binary' 参数。没用过这个模块,但我的快速检查中是这样的。
  • 原始文件大小为541kb(上传的package.nw)。当我使用“缓冲区”时,文件大小变为 1008kb,并且存档仍然损坏..

标签: node.js binary dropbox-api node-webkit fs


【解决方案1】:

搞定了!

client.readFile("package.nw", {binary : true}, function(error, data) {
          if (error) {
            return showError(error);  // Something went wrong.
            throw new Error(error);
          }
            toastr.info("Storing update..");
            console.log(data);
            fs.writeFile("package.nw", data, 'binary', function(err) {
                if(err) {
                    return showError(error);
                }

                toastr.info("Update complete!");
            });
        });

必须使用 {binary : true} 才能让它工作! https://www.dropbox.com/developers/datastore/docs/js#Dropbox.Client.readFile

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 2021-01-21
    • 1970-01-01
    • 2017-08-08
    相关资源
    最近更新 更多