在 Node.JS 中将 curl 上传文件转换为请求并写入 zip 文件

保罗

我正在尝试将以下 curl 转换为节点请求。

curl -F files[][email protected] 'https://www.rebasedata.com/api/v1/convert?outputFormat=mysql&errorResponse=zip' -o output.zip

我尝试使用 request 或 node-libcurl 但找不到上传 mdb 文件的方法。

我的代码是

var request = require('request');

var options = {
    url: 'https://www.rebasedata.com/api/v1/convert?outputFormat=mysql&errorResponse=zip',
    method: 'POST',
    formData: {
        custom_file: {
            options: {
            contentType: 'application/mdb'
        },
            value: path.resolve(__dirname, 'myMdb.mdb') 
        }
    }
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

但是我不断收到错误,例如没有给出文件或无法打开文件。

任何帮助表示赞赏。

慧萨摩

你有一些错误:

编辑:如何从响应中编写 zip 文件?

你想写zip文件,请参考包JSZip https://stuk.github.io/jszip/documentation/howto/read_zip.htmlhave 之后body,读取 zip 并写入 zip 文件。

我已经用新代码解决了您的问题,回调处理程序来自 文档request,您可以忽略我的回调处理程序。

更新的 zip 文件

之前请安装包 jszip

npm install jszip --save

这是代码,请在请求时添加encoding: null

var request = require('request');
var path = require('path');
var fs = require('fs');
var JSZip = require("jszip");

function callback(error, response, body) {
    if (error || response.statusCode !== 200) {
        console.log(error);
        return;
    }
    JSZip.loadAsync(body).then(zip => {
        console.log(zip.files);
        zip.generateNodeStream({ type: 'nodebuffer', streamFiles: true })
            .pipe(fs.createWriteStream(path.join(__dirname, './out.zip')))
            .on('finish', function () {
                console.log("File written");
            });
    }).catch(err => console.log(err))
}

request({
    url: 'https://www.rebasedata.com/api/v1/convert?outputFormat=mysql&errorResponse=zip',
    method: 'POST',
    encoding: null, // <--------- important ----------
    formData: {
        'files[]': {
            options: {
                filename: 'database.mdb',
                contentType: 'application/mdb'
            },
            value: fs.createReadStream(path.resolve(__dirname, './database.mdb'))
        }
    }
}, callback);

我的文件database.mdb上传到这里https://ufile.io/prnsi(文件将在发布答案 30 天后删除)。

什么时候console.log(zip.files);,你会从我的数据库文件中收到

{ 'data.sql':
   { name: 'data.sql',
     dir: false,
     date: 2018-12-17T02:09:08.000Z,
     comment: null,
     unixPermissions: 33206,
     dosPermissions: null,
     _data:
      { compressedSize: 643,
        uncompressedSize: 1817,
        crc32: 1832401262,
        compression: [Object],
        compressedContent: <Buffer 9d 54 6d 6f a2 40 10 fe 7c fc 8a b9 4f da 56 da c5 7a 46 bd 98 88 b0 b6 44 5c ae 80 f7 d2 2f 88 b0 6d 49 10 1a 5e 9a f6 df df 02 be 80 40 7a 39 02 c9 ... > },
     _dataBinary: true,
     options: { compression: null, compressionOptions: null } } }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 Javascript (Node.js) 中将 .jl 文件转换为 .json 文件

来自分类Dev

在Node.js中将多个文件写入循环

来自分类Dev

在Node.js中将多个文件写入循环

来自分类Dev

如何在Java中将zip文件转换为字节

来自分类Dev

Node js写入文件

来自分类Dev

在Node JS中将JSON对象转换为Excel文件时,如何在Excel文件中存储Javascript数组元素?

来自分类Dev

尝试在Node.js中将CSV文件转换为JSON时会产生语法错误,而仅需要CSV文件

来自分类Dev

如何在Python中将文件写入Zip文件的根目录

来自分类Dev

在 Node JS 中将文本文件拆分为数组

来自分类Dev

使用curl命令下载ZIP文件

来自分类Dev

使用curl命令下载ZIP文件

来自分类Dev

如何在Node环境中将BLOB转换为PDF文件?

来自分类Dev

如何在 node.js 中将 XML 转换为 JSON 而没有来自 xml 文件的前两个元素?

来自分类Dev

Node.js:wget,解压缩并转换为js而不写入文件

来自分类Dev

在Node.js中将十六进制摘要写入文件

来自分类Dev

在Node.js中将多维数组写入csv文件的确切步骤是什么?

来自分类Dev

如何在Node.js中将buffer数据从read.stream写入文件?

来自分类Dev

在node.js中将文件上传到Google Cloud Storage时出错

来自分类Dev

在Node JS中上传文件

来自分类Dev

Node.js; 来自stdout的彩色文本在写入文件时会转换为对象符号

来自分类Dev

Node.js:如何使用现有文件创建一个zip文件

来自分类Dev

从 Node.js 中的 .rar 或 .zip 文件中提取所有文件名

来自分类Dev

PHP:cURL下载ZIP文件-较小的文件大小

来自分类Dev

请如何将此 curl 请求转换为 node.js 请求?

来自分类Dev

如何在Node js应用程序中以及在zip下载开始后对文件夹进行zip压缩?

来自分类Dev

如何在Node js应用程序中以及在zip下载开始后对文件夹进行zip压缩?

来自分类Dev

在Codeigniter中将上传的pdf文件转换为jpg

来自分类Dev

在ZIP文件流传输期间,Node.js会阻止并且无法处理下一个请求

来自分类Dev

使用Node JS中的Curl在GitHub上更新文件的问题

Related 相关文章

  1. 1

    如何在 Javascript (Node.js) 中将 .jl 文件转换为 .json 文件

  2. 2

    在Node.js中将多个文件写入循环

  3. 3

    在Node.js中将多个文件写入循环

  4. 4

    如何在Java中将zip文件转换为字节

  5. 5

    Node js写入文件

  6. 6

    在Node JS中将JSON对象转换为Excel文件时,如何在Excel文件中存储Javascript数组元素?

  7. 7

    尝试在Node.js中将CSV文件转换为JSON时会产生语法错误,而仅需要CSV文件

  8. 8

    如何在Python中将文件写入Zip文件的根目录

  9. 9

    在 Node JS 中将文本文件拆分为数组

  10. 10

    使用curl命令下载ZIP文件

  11. 11

    使用curl命令下载ZIP文件

  12. 12

    如何在Node环境中将BLOB转换为PDF文件?

  13. 13

    如何在 node.js 中将 XML 转换为 JSON 而没有来自 xml 文件的前两个元素?

  14. 14

    Node.js:wget,解压缩并转换为js而不写入文件

  15. 15

    在Node.js中将十六进制摘要写入文件

  16. 16

    在Node.js中将多维数组写入csv文件的确切步骤是什么?

  17. 17

    如何在Node.js中将buffer数据从read.stream写入文件?

  18. 18

    在node.js中将文件上传到Google Cloud Storage时出错

  19. 19

    在Node JS中上传文件

  20. 20

    Node.js; 来自stdout的彩色文本在写入文件时会转换为对象符号

  21. 21

    Node.js:如何使用现有文件创建一个zip文件

  22. 22

    从 Node.js 中的 .rar 或 .zip 文件中提取所有文件名

  23. 23

    PHP:cURL下载ZIP文件-较小的文件大小

  24. 24

    请如何将此 curl 请求转换为 node.js 请求?

  25. 25

    如何在Node js应用程序中以及在zip下载开始后对文件夹进行zip压缩?

  26. 26

    如何在Node js应用程序中以及在zip下载开始后对文件夹进行zip压缩?

  27. 27

    在Codeigniter中将上传的pdf文件转换为jpg

  28. 28

    在ZIP文件流传输期间,Node.js会阻止并且无法处理下一个请求

  29. 29

    使用Node JS中的Curl在GitHub上更新文件的问题

热门标签

归档