javascript - FormData在前端定义,在后端未定义

标签 javascript jquery node.js

我想上传一张关于更改和 formData 的图片,我相信它正在抓取前端的信息,因为我没有得到未定义的信息,但在我的后端它是未定义的。

//THIS IS MY INPUT 
<input class="second-picture" type="file" name="filename" accept="image/gif, image/jpeg, image/png">

//DEFINING FORMDATA
var formData = new FormData();
formData.append('file', $('input.second-picture').prop('files')[0])

console.log(formData.get("file"))

// THIS CONSOLE GIVES ME: 
File {
  name: picture.jpg
  lastModified: xxx (date)
  size: 541092
  type: "image/jpeg"
  webkitRelativePath: ""
}

这是 AJAX 调用和后端“POST”

AJAX CALL - 

$.ajax({
    type: 'POST',
    url: `/api/Upload-second-picture`,
    crossDomain: true,
    data: formData,
    cache: false,
    processData: false,
    contentType: false,
    enctype: 'multipart/form-data',
    mimeType: 'multipart/form-data',
    beforeSubmit : function() {

    },
    success : function(responseText, statusText, xhr, $form) {
        console.log('responseText', responseText)
    }
});

router.post('/Upload-second-picture', function(req, res) {
  let upload = multer({ storage: storage }).single('filename')
  upload(req, res, function (err) {
    let file = req.file
    console.log('this is my file', file) // RETURNS UNDEFINED
    if(file != undefined) {

      if (err) {
        return res.send("Error: file not uploaded 2", err)
      }
      return res.send(fileName)
    }
  })
})

如何让后端也抓取信息?

最佳答案

您将文件放在 file 键中,在 new FormData 中,因此使用 multer 获取相同的文件应该很自然:

let upload = multer({ storage: storage }).single('file');//instead of filename

关于javascript - FormData在前端定义,在后端未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57297494/

相关文章:

jquery - 如何从对象中选择和求和值?

javascript - 使用 Socket.IO 发送到房间/ channel 中的用户子集

javascript - 复选框显示/隐藏不适用于 jQuery

javascript - ${} 模板文字 (ES2015) 与 JSP EL 语法冲突

jquery - 有没有我可以练习选择器用法的 jquery 模拟器

javascript - 在请求的 header 中发送正文选项

node.js - 如何将通知从 node.js 服务器发送到 android 客户端。

javascript - 使用复选框突出显示特定表

javascript - 设置自定义高度 Angular Material 自动完成下拉列表

具有数组列表属性的 jQuery JSON ASP.NET MVC 访问对象?