Tag: multer

带有Post方法和enctype Multipart / form-data的表单没有在Nodejs Express multer模块上提交

我在用 : "ejs": "^2.5.6", "express": "^4.14.0", "express-validator": "^3.2.0", "multer": "^1.3.0", 我的表单是: <form id="offer-form" role="form" enctype="multipart/form-data" action="/subfolder/86" method="POST"> <input type="text" name="name"/> <input type="file" name="images"/> <input type="file" name="images"/> <button type="submit">Submit</submit> </form> 我的服务器路由: var path = require('path'); var express = require('express'); var bodyParser = require('body-parser'); var expressValidator = require('express-validator'); var osmodule = require('../../osmodule'); var Multer = require('multer'); var […]

Node.js:Multer上传的承诺?

我有这个快速路由与multerfile upload。 上传完成后,我想将图像编码为base64并发送响应。 但是,当我这样做时,代码尝试执行base64编码之前,文件创build到文件夹。 编辑 :增加了存储和上传function const storage = multer.diskStorage({ destination: (req, file, callback) => { if (!fs.existsSync('./uploads')) { fs.mkdirSync('./uploads'); } let path = './uploads'; callback(null, path); }, filename(req, file, cb) { let fileExt = file.originalname.substring(file.originalname.lastIndexOf('.')).toLowerCase(); if (!imageFilter(fileExt)) { return false; } else { cb(null, file.originalname); } }, onError: function (err, next) { console.log('error', err); […]

Multer没有看到上传的图像

我想在单个post请求中保存一个图像,这将是用户对MongoDB的头像,还有一些用户使用npm的包的信息叫做multer。 不幸的是,只有我能在控制台中看到的是错误: TypeError: Cannot read property 'path' of undefined register.pug extends layout block content h1 Register form(method='POST', action='/users/register') .form-group label Username: input.form-control(name='firstName', type='text') .form-group label Email: input.form-control(name='lastName', type='text') .form-group label Name: input.form-control(name='email', type='text') .form-group label Password: input.form-control(name='password', type='password') .form-group label Avatar: input.file(name='avatar', id='avatar' type='file') input.btn.btn-primary(type='submit',value='Submit') 注册路线 const upload = multer({ dest: 'uploads/avatars/' }) router.post('/register', upload.single('avatar'), […]

Multer模块不会启动

我正在使用MEAN堆栈编写一个Web应用程序。 我通过npm安装了multer,如下所示: sudo npm install -g multer 我需要在我的路线文件之一: var multer = require("multer"); 我正在使用nodemon并且每次重新启动时都会引发以下错误,因为我已经添加了require语句。 28 Feb 18:39:13 – [nodemon] restarting due to changes… 28 Feb 18:39:13 – [nodemon] starting `node ./bin/www` module.js:338 throw err; ^ Error: Cannot find module 'multer' at Function.Module._resolveFilename (module.js:336:15) at Function.Module._load (module.js:278:25) at Module.require (module.js:365:17) at require (module.js:384:17) at Object.<anonymous> (/Users/jason/Desktop/Node/todoApp/routes/todos.js:8:14) at […]

关于使用Multer(1.0.6)和Express来上传文件

我想使用Muller从表单上传图片。 我find一个关于如何使用multer上传文件的post ,并触发事件来重命名文件。 不过,我发现它只适用于旧版本(multer-0.1.6) 在multer的github的最新指令中,我想我必须使用disk storage engine来上传新名称的文件,但是它不起作用。 请给我一些指示,我整天试过这个function… 此外,我不知道为什么res.status(204).end(); 需要吗? 二,不要添加这一行,网页将始终locking,当我点击上传button… 的package.json { "name": "FileUpload", "version": "0.0.0", "private": true, "scripts": { "start": "node ./bin/www" }, "dependencies": { "body-parser": "~1.13.2", "cookie-parser": "~1.3.5", "debug": "~2.2.0", "express": "~4.13.1", "jade": "~1.11.0", "morgan": "~1.6.1", "multer": "^1.0.6", "serve-favicon": "~2.3.0" } } upload.js var express = require('express'); var multer = require('multer'); var […]

在Express JS中使用Multer在扩展的基础上过滤文件

如问题标题所解释的,我需要根据文件扩展名来过滤上传的文件。 于是,我浏览了官方文档并search了这个网站。 我所试过的 我尝试过遇到的解决scheme。 文件正在成功上传,但问题是如何过滤文件。 目前我的Router.js文件看起来像这样。 Router.JS var multer = require('multer'); var storage = multer.diskStorage({ //multers disk storage settings destination: function (req, file, cb) { cb(null, './public/uploads/') }, limits:{ files: 1, fileSize: 1024 * 1024 }, filename: function (req, file, cb) { var datetimestamp = Date.now(); cb(null, file.fieldname + '-' + datetimestamp + '.' + […]

pipe道可读stream使用superagent

我正在尝试创build一个multer中间件,通过superagent将stream媒体文件从客户端传送到第三方。 const superagent = require('superagent'); const multer = require('multer'); // my middleware function streamstorage(){ function StreamStorage(){} StreamStorage.prototype._handleFile = function(req, file, cb){ console.log(file.stream) // <– is readable stream const post = superagent.post('www.some-other-host.com'); file.stream.pipe(file.stream); // need to call cb(null, {some: data}); but how // do i get/handle the response from this post request? } return new StreamStorage() […]

如何在节点js中find文件的大小

我用multer上传我的图片和文档,但是这次我想限制上传,如果图像的大小是> 2mb。如何find文档的文件的大小? 到目前为止,我尝试了如下但不工作。 var storage = multer.diskStorage({ destination: function (req, file, callback) { callback(null, common.upload.student); }, filename: function (req, file, callback) { console.log(file.size+'!!!!!!!!!!!!!!')======>'Undefined' var ext = ''; var name = ''; if (file.originalname) { var p = file.originalname.lastIndexOf('.'); ext = file.originalname.substring(p + 1); var firstName = file.originalname.substring(0, p + 1); name = Date.now() + '_' […]

用multer和nodejs返回上传文件的文件名

我创build了一个简单的应用程序作为一个学习经验与离子2,连接到节点服务器运行multer上传图像。 我遇到的问题是,我需要从最后的文件名得到从上传到它的应用程序,以保存在本地。 我正在使用来自@ ionic / cloud-angular的authentication和用户模块来进行authentication和用户信息。 用户对象有一个细节对象,如“名称”,“电子邮件”,“用户名”,“图像”,…所以,当一个图像上传到节点服务器,并保存它,我需要得到文件名返回到应用程序,所以我可以更新user.details.image属性。 这里是我的节点服务器的简单版本… var express = require('express'); var http = require('http'); var bodyParser = require('body-parser'); var multer = require('multer'); var cors = require('cors'); var postStorage = multer.diskStorage({ destination: function(req, file, callback) { callback(null, './uploads'); }, filename: function(req, file, callback) { let fileName = '', postName; if(typeof req.body.postName !== "undefined") { […]

如果用户validation失败,请停止在multer中上传文件

上传文件是通过使用此代码的multer完成的,但是如何在用户validation失败时停止file upload。 在这里编写用户validation部分的代码 router.post('/profilePicture', multer({dest: './uploads/', rename: function (fieldname, filename,req,res) { return image = req.body.userId+'-'+dateTime+'-'+randomId(); }, onFileUploadStart: function (file,req,res) { if(file.mimetype !== 'image/jpg' && file.mimetype !== 'image/jpeg' && file.mimetype !== 'image/png') { imageUploadDone = false; return false; } //console.log(file.originalname + ' is starting …'); }, onFileUploadComplete: function (file,req,res) { //console.log(file.fieldname + ' uploaded to ' […]