我是js节点的新手。我有一个html表单,它有像-这样的文件输入
<form action="importlist_action" method="post" enctype="multipart/form-data">
Select File:
<input type="file" name="file" id="file" tabindex="1" />
</form>
现在,我已经将这个帖子请求重定向到控制器的以下方法。
exports.doImport = function(req, res) {
console.log('Post values: ' + JSON.stringify(req.body));
console.log("File path : " + req.body.file);
}
我在这里得到的结果是-
Post values: {}
File path : undefined
我想要在控制器中的上面表格上选择的文件的路径。有人能纠正我在这里做错了什么吗?
任何帮助都将不胜感激。
如果您使用Express3.x和bodyParser()中间件,那么您应该在req.files
下查找文件。
如果您使用的是Express4.x,那么您必须使用一个单独的模块来读取多部分请求。这类模块的例子有:busboy(/connect-busboy/multer/reformed)和令人生畏。
正如@adeneo所提到的,并非所有浏览器都提供实际的文件路径,但大多数浏览器至少会提供一个文件名。Busboy和Formidable都可以为您提供文件名。
您必须注意,node.js不会像PHP那样默认上传文件夹中的文件。
你可能正在寻找一个中间件来为你做这件事:
http://www.senchalabs.org/connect/bodyParser.html