文件无法正确上传

时间:2016-08-07 01:51:46

标签: html json node.js

编辑:使用米哈伊尔的建议编辑。更接近解决方案

您好我正在尝试使用nodejs上传JSON文件但由于某种原因它说我的文件未定义。但是,我的公共文件夹中会显示一个文件,其中包含上载文件的内容。我想知道是否有人能够帮助我。感谢

这是HTML

<form method="post" enctype="multipart/form-data" action="/file-upload">
  <input type="file" name="theFile" >
    <input type="submit" class = "submit">
</form>

编辑:这是server.js

 app.post('/testtwilio',upload.single('theFile'),function(req, res, next) {
 console.log('FIRST TEST: ' + req.file);

});

这是JSON文件

[{"name":"FIRST LAST","date":"12/22/2016","number":"7523924324"}]

这是记录的内容

FIRST TEST: [object Object]

2 个答案:

答案 0 :(得分:3)

将您的JSON.stringify(req.files)更改为JSON.stringify(req.file)

完整代码

HTML

<form id = "uploadForm" enctype = "multipart/form-data" action = "/api/file" method = "post">
    <input type="file" name="userFile" />
    <input type="submit" value="Upload File" name="submit">
</form>

JS

var express = require('express')
var multer  = require('multer')
var upload = multer({ dest: 'uploads/' })
var app = express()

app.get('/',function(req,res){
      res.sendFile(__dirname + "/index.html");
});

app.post('/api/file', upload.single('userFile'), function (req, res, next) {
  console.log(JSON.stringify(req.file))
})

app.listen(3000,function(){
    console.log("Working on port 3000");
});

注意:

您在multer.single()方法中使用的文件名应与输入<input type="file" name="userFile" />

中的名称匹配

答案 1 :(得分:1)

如果您使用.single(...)方法,该文件将位于req.file