【问题标题】:File upload using Multipart fails in nodejs在 nodejs 中使用 Multipart 上传文件失败
【发布时间】:2016-06-02 14:25:36
【问题描述】:

我正在尝试使用 multipart 在节点 js 中上传文件,但出现无法 POST 错误?我对节点 js 完全陌生。所以你能帮我做错什么吗 我的代码? HTML

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

服务器.js

var express  = require('express');
var app      = express();
var multer  =   require('multer');
app.use(express.static(__dirname));
app.get('/', function(request, response){
    response.sendFile("./index.html"); 
});

var storage =   multer.diskStorage({
  destination: function (req, file, callback) {
    callback(null, './uploads');
  },
  filename: function (req, file, callback) {
    callback(null, file.fieldname + '-' + Date.now());
  }
});
var upload = multer({ storage : storage}).single('fileUpload');


app.post('/api/uploadfile',function(req,res){
    upload(req,res,function(err) {
        if(err) {
            return res.end("Error uploading file.");
        }
        res.end("File is uploaded");
    });
});


app.listen(8080);
console.log("App listening on port 8080");

错误信息如下:

上传文件时出错

【问题讨论】:

  • 您似乎正在请求未在您的节点服务器中注册的路由。您能否交叉检查浏览器请求的 URL 以上传文件。
  • 你的代码完全没问题,我什至在我的机器上运行它。文件正在上传。除了你错过了&lt;form&gt;的结束标签
  • @Nivesh 我已经关闭了我的代码上的表单错过了这里,没有代码对我不起作用我总是收到错误消息
  • @JitendraKhatri 你能解释清楚我是节点开发的菜鸟
  • 控制台记录你从 multer 得到的错误

标签: javascript node.js multer


【解决方案1】:

我试过你的代码,它在这里工作。原因可能是,

1)你错过了表单标签的结束

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

2)确保您有一个名为 -> uploads 的文件夹

【讨论】:

    猜你喜欢
    • 2017-02-22
    • 2016-01-27
    • 1970-01-01
    • 2020-04-15
    • 2017-07-14
    • 2020-12-22
    • 2013-12-13
    • 2013-04-07
    • 1970-01-01
    相关资源
    最近更新 更多