Req.file对象始终未定义,HTTP文件上载

时间:2016-11-15 15:13:59

标签: node.js meteor

我尝试使用HTTP POST方法在meteor上传文件,并使用enctype =" multipart / form-data"

WebApp.connectHandlers.use("/api/v1/upload", function(req, res, next)   {
  console.log(req.files); //undefined
  console.log(req.file); //undefined
  console.log(req);
})

我尝试使用WebApp但在请求对象下获取未定义的文件属性

我也试过multer和Picker,但没有运气。

const _multerInstanceConfig = { dest: '/tmp' }; // Temp dir for multer
const _multerInstance = multer(_multerInstanceConfig);

Picker.middleware(_multerInstance.single('photo'));
Picker.route('/api/v1/upload', function(params, req, res, next) {
  console.log(req.files); //undefined
  console.log(req.file); //undefined
  console.log(req);
})

这是我尝试上传的最简单的形式

<form action="http://localhost:3000/api/v1/upload" method="POST" enctype="multipart/form-data">
    <input type="file" name="file" />
    <input type="submit" value="Upload File" />
</form>

我在这里遗漏了什么吗?不确定。 此外,我不想通过DDP使用base64数据字符串上传文件,因为它非常慢。

我也检查了几个链接,但没有运气 multer - req.file always undefined
https://github.com/noris666/Meteor-Files-POST-Example

PS:我需要通过原生的Android / iOS客户端上传图片。

1 个答案:

答案 0 :(得分:0)

谢谢,每个人都花了我的时间在我的问题上,我从git http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.html得到了问题的解决方案,我提出了。 如果其他人也面临类似的问题,我会在这里发布我的解决方案。

这是因为此输入字段的名称

<input type="file" name="file" />

不匹配
Picker.middleware(_multerInstance.single('photo'));

将它们中的任何一个更改为将使其完美运行。