【问题标题】:how to upload file and get it content in node js如何上传文件并在节点js中获取内容
【发布时间】:2020-01-13 11:47:56
【问题描述】:

我正在尝试上传 xsls 文件并尝试将其内容转换为 JSON 并在控制台中显示。 我正在使用这个插件上传我的文件 https://www.npmjs.com/package/express-fileupload 我对此做了一个简单的演示。

https://codesandbox.io/s/flamboyant-payne-p7chg

我在使用我的服务时使用了这个sample file https://gofile.io/?c=2wBegC 它向我显示 binary 不是 JSON 或内容

app.use(upload()); // configure middleware
app.get("/abc", function(req, res) {
  res.send({ test: "sss" });
});
app.post("/upload", function(req, res) {
  console.log("ssss");
  console.log(req.files);

});

app.listen(PORT, function() {
  console.log("Express server listening on port ", PORT); // eslint-disable-line
});

我想我需要将binary 转换为一些 json 对象

【问题讨论】:

  • 另外,一个 XLSX 文件二进制数据(它是一个带有特定内容的 zip 文件)。我不知道为什么你会认为它会显示 JSON 或为什么你认为它不会显示内容。
  • 是的,我想我知道将 binary 转换为 json
  • 有什么方法可以在不保存文件的情况下读取文件内容?换句话说,我不想将该文件保存在任何位置。
  • “读取文件内容”对您来说意味着什么?您是否想要文件的原始字节,以便您可以从头开始编写一个 zip 文件解码器,然后为其中的所有数据编写一个 Excel 解析器?那将是大量的工作。您是否考虑过寻找某人已经编写的库?也许你会发现一个期望首先传递一个 Buffer 对象。
  • 如果你下载这个文件gofile.io/?c=2wBegC

标签: javascript node.js file-upload node-modules


【解决方案1】:

尝试使用 express-fileupload npm 包,真正帮助您的只是这个中间件

const fileUpload = require('express-fileupload');
app.use(fileUpload({
    createParentPath: true
}));

【讨论】:

    【解决方案2】:

    你可以试试excel2Json:

    npm install excel2Json --save

    然后:

    const excel2Json = require('excel2json');
    
    excel2Json('sample.xls', (err, output) => {
       // do stuff with your outputJSON
    });
    
    // Or with additional options
    excel2Json('../test/sample.xls', {
        'convert_all_sheet': false,
        'return_type': 'File',
        'sheetName': 'survey'
    }, (err, output) => {
     // do stuff with your outputJSON
    });```
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-12
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 2015-08-26
    • 2014-02-17
    • 2020-07-25
    • 2019-04-25
    相关资源
    最近更新 更多