req.files正在生成null,现在req.body也是空白的.我在这里搜索了所有的答案,但找不到多少.不幸的是,multer文档非常缺乏,所以希望有人已经完成了我现在的工作并知道发生了什么.
我的router.js文件是这样的:
var express = require('express'); var request = require('request'); var mid = require('../middleware'); var busboy = require('connect-busboy'); var fs = require('fs'); var multer = require('multer'); var upload = multer({dest: '../public/images/blog'}); var User = require('../data/models/user'); var router = express.Router(); ... ... ... ... /* POST saveblog router. */ router.post('/saveBlog',upload.any(),function(req,res,next) { console.log(req.body,'Body'); console.log(req.files,'files'); var title = req.body.titleInput; var body = req.body.bodyInput; request.post('http://' +req.headers.host + '/api/blog',{json: {body: body,title: title,userId: req.session.userId}},function(err,httpResponse,body) { if (err) { console.error('error posting blog'); } console.log('Blog Post successfully uploaded'); }); return res.redirect('/blog'); }); module.exports = router;
所以我不完全确定这有什么问题,我最初把它作为upload.single(‘image’),但是那个也没用,所以谁知道.
这是我提交的玉石表格,如果有人可以提供帮助但不喜欢玉石,我相信我可以找到它的快速转换器.
form(action='saveBlog',enctype='multipart/form-data',method='post') h1 New Blog Post fieldset(data-role='') label(for='title') Title input(id='titleInput',name='titleInput',type='text',value='',placeholder='Your Title',require='true').form-control label(for='image') Your Title Image input(id='image',name='image',type='file',accept='image/*') br label(for='body') Your Article (Box is resizable) textarea(id='mytextarea',name='bodyInput').form-control input(type='submit',value='Post your Article').btn.btn-primary
解决方法
我今天一直在努力.我注意到的一件事是你正在使用upload.single(),你正在寻找的数据将在req.file而不是req.files.
我不确定这是不是你的问题.
仅供参考,这个精简的例子对我有用:
server.js
var express = require('express'); var app = express(); app.use(require('./routes')); app.listen(8080);
routes.js
var express = require('express'); var multer = require('multer'); var upload = multer({ dest: '/tmp/' }); var router = express.Router(); /* POST saveblog router. */ router.post('/saveBlog','Body'); console.log(req.files,'files'); res.end(); }); module.exports = router;
我从Postman发布并得到了这个输出:
{ test: '1' } 'Body' [ { fieldname: 'asdas',originalname: 'vcenter.png',encoding: '7bit',mimetype: 'image/png',destination: '/tmp/',filename: '92f425268efaa45cad31f67ec8f14c2d',path: '/tmp/92f425268efaa45cad31f67ec8f14c2d',size: 54834 } ] 'files'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。