【发布时间】:2017-04-05 04:37:29
【问题描述】:
我有一个用于食品自动化系统的 CMS,我将添加一个用于上传食品图片的部分:
<form method="post" enctype="multipart/form-data" action="/upload">
<td><input class="styleFormForAddProducts foodpicForAddFood" type="file" name="file"></td>
<td><input class="styleFormForAddProducts submitForAddFood" type="submit" value="Submit" ></td>
</form>
我编写了这段代码用于在 Express.js 中发出 POST 请求:
app.post('/upload', function (req, res) {
var tempPath = req.files.file.path,
targetPath = path.resolve('./uploads/image.png');
if (path.extname(req.files.file.name).toLowerCase() === '.png') {
fs.rename(tempPath, targetPath, function(err) {
if (err)
throw err;
console.log("Upload completed!");
});
} else {
fs.unlink(tempPath, function () {
if (err)
throw err;
console.error("Only .png files are allowed!");
});
}
});
但是,当我定义这个 app.use 时,我得到一个错误:
中间件:app.use(express.bodyParser({uploadDir:'/img'}));
错误:错误:大多数中间件(如 bodyParser)不再与 Express 捆绑在一起,必须单独安装。请参阅https://github.com/senchalabs/connect#middleware。
当我定义这样的中间件时:
app.use(bodyParser({uploadDir:'/img/'}));
我没有任何错误,但我的代码无法正常工作。
【问题讨论】:
-
1.您的问题标题与您的问题无关 - 2.使用npmjs.com/package/multer
-
另外,您的 HTML 无效 -
td只能是tr的子项 -
@ChrisG tnnnnnnx
-
使用
multer模块
标签: javascript jquery html node.js express