我刚刚开始学习NodeJS,我遇到了一个问题。我想将文件上传到我的服务器。为此,我搜索并找到这个模块
multer.做为例子在GitHub工程:
var express = require('express'); var multer = require('multer'); var upload = multer({ dest: 'uploads/' }); var app = express() app.post('/uploadImage',upload.single('image'),function(req,res) { console.log(req.file); });
在使用FormData将图像发布到/ uploadImage时,图像保存在uploads /目录中。事情是图像保存有一个奇怪的名字,我想保存它的原始名称。
要这样做,我明白,我必须调用app.use(multer({dest:’uploads /’}))’,然后我可以访问req.file在我的函数像:
app.post('/uploadImage',res) { console.log(req.file); });
TypeError: app.use() requires middleware functions at EventEmitter.use (project\node_modules\express\lib\application .js:209:11)
Im使用NodeJS 0.12.7和Express 4.13.1
如何实现上传?谢谢。
解决方法
你需要使用app.use(multer({dest:’./ uploads /’})),其形式如下:
app.use(multer({dest:'./uploads/'}).single(...)); app.use(multer({dest:'./uploads/'}).array(...)); app.use(multer({dest:'./uploads/'}).fields(...));
即:
app.use(multer({dest:'./uploads/'}).single('photo'));
并确保有类似的东西:
<form action="/postPhotos" enctype="multipart/form-data" method="post"> <input type="file" name="photo"> <input type="submit" value="Upload photo"> </form>
在你的html。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。