Tag: multer

POST和GET图像到/从Angular的MongoDB

我正在做一个angular度的应用程序,为用户提供了可能性,来pipe理他们的项目。 我有nodeJS&express expresside和MongoDB作为我的数据库。 我想实现的目的是,用户可以上传媒体(16MB以下的图片,所以不需要使用GridFS)到他们的项目中,并且可以显示哪个项目,哪个媒体附加。 我没有得到图像,也没有错误。 我如何从angular度传递project_Id到我的路线,find附加到项目的媒体? 这样试图发布和获得媒体正确的方式? 项目和媒体的模型: var mediaSchema = mongoose.Schema({ media : {data: Buffer, contentType: String}, project_id : String, updated_at : {type: Date, default: Date.now } }); var projectSchema = mongoose.Schema({ author : String, name : String, description : String, tags : String, updated_at : {type: Date, default: Date.now }, active : {type: […]

如何处理expressjs中间件请求。 POST请求由dropzone保持挂起

我正在使用dropzone上传文件。 在服务器端我使用节点和expressjs。 我也使用MULTER作为文件处理中间件。 dropzone调用一个端点来保存服务器上的文件。 在服务器端,我创build了一个端点来处理文件: exports.saveFile = function (req, res) { console.log(req.files); return res.status(200); //I have not added any file save logic here }; 这是我如何configuration的Muller var app = express(); var server = require('http').createServer(app); app.use(multer({ dest: './uploads/'})); 看起来像multer自动将文件保存到uploads文件夹。 问题 :即使文件保存在服务器上,请求在客户端仍然处于挂起状态。 我怎样才能返回从服务器到客户端的成功响应? 我是否需要在已创build的端点上添加一些代码,或者是否需要在multer提供的onFileUploadComplete()下添加所需的逻辑?

Nodejs有什么问题?

我正在使用Muller来处理上传图片。 app.use(multer({ dest: './public/photos', rename: function (fieldname, filename) { return filename+Date.now(); }, onFileUploadStart: function (file) { console.log(file.originalname + ' is starting …') }, onFileUploadComplete: function (file) { console.log(file.fieldname + ' uploaded to ' + file.path) //a='asass'; done=true; } })); app.post('/api/photo',function(req,res){ if(done==true){ //ERROR here if I remove comment on 'a=asass' >> 'done' is not defined console.log(req.files); […]

Express JS 4.x Multer基本上传

我尝试使用Multer中间件以Express JS的forms上传图像,但在尝试设置绝对最简单的用例时遇到了几个问题。 我收到的唯一的错误是:'POST /上传500',我的POSTcallback从来没有进入..所以我甚至不知道如何debugging这种情况。 我的代码如下: app.js: var express = require('express'); var multer = require('multer'); var upload = multer({ dest: './public/photos/'}); // valid dir app.post('/upload', upload.single('photo'), function(req, res, next){ // This callback is never reached. 500 error. console.log(req.body); console.log(req.files); }); upload.ejs: <form method='post' enctype='multipart/form-data'> <p><input type='text', name='photo[name]', placeholder='Name'/></p> <p><input type='file', name='photo[image]'/></p> <p><input type='submit', value='Upload'/></p> </form> 我无法挑出这与当前npm […]

在node.js中添加逻辑/validation到multer(快速)

在file upload期间,我想validation文件的大小,确保上传的文件是一个实际的图像,最后但并非最不重要的是validation标题已被写入图像。 但是这个代码不起作用。 我该怎么办? var multer = require('multer'), upload = multer({ dest: 'uploads/', onFileUploadStart: function(file, req, res){ if(file.size > 1000000) { res.send("Maximum picture size is 1 MB"); return false; } if(req.body.postname === ''){ res.send("Enter a title name for your post"); return false; } if(file.mimetype !== 'image/png' && file.mimetype !== 'image/jpg' && file.mimetype !== 'image/jpeg'){ res.send("Supported […]

使用fs将上传的图像重命名为multer

当用户上传一张图片 – 我使用的是一个名称包含一个空格的方式 – 我想用"-"replace空格,然后将文件名保存到我的Mysql表中,然后重命名file upload到新的名称与"-" 。 这是我的代码。 它会重新命名并且Mysql表格会使用连字符保存新名称,但由于某种原因图像不会被上传,甚至没有错误,事实上POST请求实际上是成功的。 router.post('/uploadpost', upload.single('image'), function(req, res){ var name = req.file.originalname; var reName; if(/\s/g.test(name)){ reName = name.replace(" ", "-"); fs.rename(req.file.path, reName, function(err){ if(err){ throw err; } }); }

Multer,node.js:内存在映像上传和处理后不会被清除

我在Node.js中使用Sharp和Multer,并且有一些内存问题。 当使用此代码完成该过程时,所使用的缓冲区似乎不会被释放: var storage = multer.memoryStorage(), upload = multer({ storage: storage }).single('picture'); router.post('/save', function (req, res) { upload(req, res, function (err) { sharp(req.file.buffer) .resize(400, 400) .max() .toFormat('jpeg') .toFile("public/images/picture.jpg", function (err) { res.send(true); }); }); }); 每次我发送一张图片,使用的内存都会增加图片的大小,并且不会被清除。 我尝试不使用夏普(所以基本上只是发送一个文件,而没有处理它之后),但问题依然存在。 如果用户上传大量的文件,恐怕会使用大量的RAM。 我能做些什么来改善这段代码?

使用node.js将多个文件引用到数据库

我不明白如何使用Node.Js保存多个file upload到数据库的引用(文件名)。 我正在使用blueimp jqueryfile upload和multer中间件来执行多个file upload到本地存储(上传文件夹)。 <input id="fileupload" type="file" name="images" data-url="/record/edit/#{record.id}" multiple> app.js代码: //using multer to upload files const upload_images = upload.fields([{ name: 'featured_img', maxCount: 1 }, { name: 'images', maxCount: 8 }]); //… app.post('/record/edit/:id', upload_images, recordController.postUpdate ); recordController.js代码: exports.postUpdate = ((req, res, next) => { Record.findById(req.params.id, (err, record) => { if (req.files ) { […]

如何使用Express 4和Multer保存文件?

我试图从FormData xhr请求保存传入的文件,但我甚至不能parsing传入的请求。 这是我如何发送文件: … let xhr = new XMLHttpRequest(), formData = new FormData(); for(let i = 0; i < this.files.length; i++) { formData.append(this.files[i], this.files[i].name); } xhr.open('POST', URL, true); xhr.send(formData); … 这就是我试图去捕捉它: var express = require('express'); var router = express.Router(); var multer = require('multer'); var uploads = multer({dest: './uploads/'}); router.post('/upload', uploads.any(), function (req, res) { console.log(req.files); […]

Node.js Express3到Express4迁移 – parsing器的使用

我的基于节点的服务器使用Express。 服务器处理仅使用json的路由和使用多部分表单的文件上载路由。 在使用Express3时,内置的parsing器parsing了两种路由。 我正在迁移到Express4的过程中。 我不得不为Express4切换的body-parser只parsingjsons。 我正在使用multerparsing器来parsingfile upload。 对于每个路由,我指定使用哪个parsing器,如下所示: var express = require('express'); var bodyParser = require('body-parser'); var multer = require('multer'); var jsonParser = bodyParser.json(); var upload = multer({dest : 'upload/' }); var uploadParser = upload.any(); var app = express(); // json route handling app.post('json_only_route', jsonParser, function(req, res) {…}); // upload route handling app.post('upload_route', uploadParser, function(req, […]