使用multer上传文件无法完全运行(nodejs)

时间:2016-11-17 23:26:27

标签: javascript node.js express file-upload

我正在使用NodeJS express(MVC),我正在尝试上传图片。我试图将图像存储在uploads文件夹中,但没有任何显示。当我在console.log(req.files)时,我得到以下内容(req.buffer打印出一长串的双位数字和字母)。如何将此图像保存在文件夹中?

  

[{fieldname:' file',       originalname:' thumbnail.jpg',       编码:' 7bit',       mimetype:' image / jpeg',       缓冲: ,       大小:1347}]

HTML:

           <form action="/bars/upload" method = 'post' enctype="multipart/form-data">
                <label for='file'>Upload Image</label>
                <input type="file" name="file" accept="image/*"/>
                <input type="submit" name='submit' value="submit"/>

            </form>

NODE JS

  

var multer = require(&#39; multer&#39;);   var upload = multer({dest:&#39; ../ public / uploads /&#39;});

     

router.post(&#39; / bars / upload&#39;,function(req,res,next){
            的console.log(req.files);
              res.send(req.files);          });

3 个答案:

答案 0 :(得分:2)

multer基本上是一个上传文件或转换为某种格式的中间件,可以在以后的处理程序中使用。因此,从examples开始,您可以在您的情况下执行此操作:

var multer = require('multer'); 
var upload = multer({ dest:'../public/uploads/' });

router.post('/bars/upload', upload.single('someFile') ,function (req, res, next) {

    // if you're here, the file should have already been uploaded

    console.log(req.files); 
    console.log(req.body);// {"someParam": "someValue"}
    res.send(req.files); 
});

<强> upload.html

<form action="/bars/upload" method = 'post' enctype="multipart/form-data">
    <label for='file'>Upload Image</label>
    <input type="file" name="someFile" accept="image/*"/>
    <input type="hidden" name="someParam" value="someValue"/>
    <input type="submit" name='submit' value="submit"/>
</form>

如果这不起作用,您可以使用命令行进行调试,这通常可以帮助我确定服务器或客户端是否有问题。

curl --form "someFile=@/path/to/file" -X POST http://localhost:3000/bars/upload

添加-I选项以显示详细回复。

答案 1 :(得分:1)

我遇到了同样的问题。我使用Postman对我的节点应用程序进行查询。当我删除http标头Content-Type(它被设置为urlencoded格式)时问题解决了。

答案 2 :(得分:1)

我有同样的问题 在目标中:'../ public / uploads /'只需删除../ 像这样写 dest:“ public / uploads /” 就是这样