【问题标题】:File not uploaded using node js multer文件未使用节点 js multer 上传
【发布时间】:2017-08-30 21:33:04
【问题描述】:

我是开发 Rest API 的新手,我尝试了以下方法来使用 HTML 上传文件,此代码有效。然后我在邮递员中尝试了这个,我得到了积极的回应,但文件没有上传,我可以知道我做错了什么吗?

    var express     =   require("express");
    var app         =   express();
    var multer  = require('multer')

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

var upload = multer({ storage : storage}).single('userPhoto');

我使用以下方法上传文件。当我使用 HTML 上传文件时,它起作用了。 但是,如果我使用邮递员尝试此操作,则会收到文件已上传消息。但是在目标文件夹中没有文件。

app.post('/api/photo',function(req,res){
    upload(req,res,function(err) {
        if(err) {   
        //  res.end({"error" : true,"message" : "Error uploading file."});
        res.end("Error uploading file.");
        }
    res.end("File is uploaded");
        // res.json({"error" : false,"message" : "File is uploaded"});
    });
});

在这里我添加了我的 HTML 文件

<html>
  <head>
    <title>File upload Node.</title>
  </head>
  <body>
      <form id="uploadForm"
          enctype="multipart/form-data"
          action="/api/photo"
          method="post">
      <input type="file" name="userPhoto" />
      <input type="submit" value="Upload Image" name="submit">
      <span id = "status"></span>
    </form>
  </body>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery.form/3.51/jquery.form.min.js"></script>
  <script>
  $(document).ready(function() {

     $('#uploadForm').submit(function() {
         $("#status").empty().text("File is uploading...");

        $(this).ajaxSubmit({

            error: function(xhr) {
                    status('Error: ' + xhr.status);
            },

            success: function(response) {
                    console.log(response)
                    $("#status").empty().text(response);
            }
    });

    return false;
    });    
});
  </script>
</html>

我尝试了很多方法,但我找不到任何解决方案,谁能帮我解决这个问题?

【问题讨论】:

    标签: node.js mongodb multer


    【解决方案1】:

    代码运行良好,由于请求标头而发生问题。

    {"Content-Type":"application/json"}
    

    我刚刚删除了它。

    这个answer 帮助我解决了这个问题

    【讨论】:

      猜你喜欢
      • 2016-06-25
      • 1970-01-01
      • 2020-07-16
      • 1970-01-01
      • 2020-05-21
      • 1970-01-01
      • 2017-10-20
      • 1970-01-01
      • 2018-08-04
      相关资源
      最近更新 更多