Tag: multer

nodejs + multer + angularjs上传而不redirect

我正在使用Nodejs + Multer + angularjs上传服务器上的文件。 我有一个简单的HTML文件: <form action="/multer" method="post" enctype="multipart/form-data"> <input type="file" id="photo" name="photo"/> <button id="Button1">Upload</button> </form> Nodejs部分: var multer = require('multer'); var storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, './uploads/') }, filename: function (req, file, cb) { cb(null, file.originalname) } }) app.post('/multer', upload.single('photo'), function (req, res) { res.end("File uploaded."); }); 这工作完美 […]

Nodejs Express 4 Multer | 如果用户没有授权,请停止file upload

我正在使用multer作为express4的多部件中间件。 Expressconfiguration为使用passport作为auth middelware,但是我找不到防止file upload的方法,如果用户没有通过validation。 我想使用onFileUploadStart拒绝文件,但我找不到与“请求”对象的链接,可以匹配用户。 下面的代码用于configurationexpress和multer: <code> … // Multipart file upload app.use(multer( { dest: wwwroot + path.sep + 'uploaded' + path.sep, onFileUploadStart: function (file) { //TODO : apply security check : user auth, file size, number… console.log(file.fieldname + ' is starting …') }, onFileUploadComplete: function (file) { console.log(file.fieldname + ' uploaded to ' + […]

我们可以configurationmulter不在本地存储文件,只能使用req.files.image.path?

我的应用程序需要如下:我将图像上传到Cloudinary并将图像的URL存储在我的mongodb数据库中。 要上传图像到cloudinary,我需要给文件path,为此,我使用multer.I使用声明: app.use(multer({dest:'./uploads/'})); 我面对的问题是,每当我从本地系统上传一个图像到Cloudinary上的数据库时,本地副本就会在'./uploads/'中创build。我想这不会发生,因为我的图像在Cloudinary上。 我读了它的说明文件的multer : Multer接受一个选项对象,其中最基本的是dest属性,它告诉Multer在哪里上传文件。 如果省略选项对象,文件将被重命名并上传到系统的临时目录。 我无法确定,如果临时上传空间需要清理或如果照顾。我的图像上Cloudinary.I使用Muller只为获取: req.files.photo.path 工作。是否还有其他方法可以做到这一点,或者如果可以configuration一个不存储图像到本地系统的方式?

错误:与multer和body-parser无效的json

我目前在node.js应用程序中使用multer来处理multipart/form-data和body-parser 。 我试图使用POSTMAN POST表单数据,但它得到这个错误。 Error: invalid json at parse (/Users/k/Documents/application/node_modules/body-parser/lib/types/json.js:79:15) at /Users/k/Documents/application/node_modules/body-parser/lib/read.js:102:18 at IncomingMessage.onEnd (/Users/k/Documents/application/node_modules/body-parser/node_modules/raw-body/index.js:136:7) at IncomingMessage.g (events.js:199:16) at IncomingMessage.emit (events.js:104:17) at _stream_readable.js:908:16 at process._tickDomainCallback (node.js:381:11) 这就是我在server.js中添加multer和body-parser的方式 var express = require('express'); var mongoose = require('mongoose'); var bodyParser = require('body-parser'); var multer = require('multer'); var app = express(); app.use(bodyParser.urlencoded({extended: true})); app.use(bodyParser.json()); app.use(multer({ dest: './uploads/'})); 我想这可能是因为耳垂不工作。 当我删除body-parser并再次尝试时,它显示console.log(req.body)和console.log(req.files)空json。 […]

读取node.js中csv文件的内容

我正在尝试在nodejs中实现一个模块( 刚刚开始在nodejs中工作 ),这个模块的要求如下 上传.csv文件。 阅读csv文件的内容。 当前用于restful api的框架是“express”:“〜4.2.0”和multer用于file upload。 现在我已经在我的app.js中configuration了像下面这样的multer app.use(multer({ onFileUploadData : function(file, data){ console.log('onFileUploadData Called with data – '+ data); } })); 在我的路由文件中,我有一个像下面的post端点 app.post('/sample.csv',lead.processCSV); 这条路由从下面的ajax调用被调用 $.ajax({ xhrFields: {withCredentials: true}, url: '/sample.csv', type: 'POST', success: function (data) { $scope.handleResponse(data); }, error: function (error, xhr) { angular.element('#csvUploadBusyIcon').hide(); alert('Oops! Upload failed'); }, data: formData, cache: false, contentType: […]

如何使用multer或body-parser上传文件

我是一个NodeJS初学者,跟着一本书“使用MongoDB和NodeJS进行Web开发”。 我在“第6章”中被卡住了。 当我使用Muller进行file upload时,服务器会引发以下错误: /Users/fk / Documents / imageuploader / node_modules / express / lib / application.js: 209 throw new TypeError('app.use() requires middleware functions'); ^ TypeError: app.use() requires middleware functions 但是当我用bodyParserreplace它时,服务器启动,但是当我点击上传button时,它给我在浏览器上的以下错误。 500 TypeError: Cannot read property 'file' of undefined 但是,它应该将我redirect到另一个页面,其中显示上传的文件。 这里是我的bodyParser代码,请看我是否正确使用它,因为它在服务器启动时给我“body-parser deprecated”。 我看过其他的问题,像我和我一样,但没有一个真正的工作。 app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser({ uploadDir: path.join(__dirname, '../public/upload/temp') })); 下面的代码显示了我如何使用Muller,以防万一如果有什么我不该做的,请让我知道。 在上传文件,body-parser或multer的情况下哪个更好? […]

使用Multer重命名上传的文件不起作用(Express.js)

我正尝试使用Express.js和Multer从HTML表单上传文件。 我设法将文件保存到所需的位置(一个名为uploads的文件夹)。 不过,我想重新命名文件,同时上传它,因为默认情况下,Multer给它一个奇怪的名字,如: 5257ee6b035926ca99923297c224a1bb 可能是一个hex时间戳,但我需要一个更明确的名字,以便稍后调用脚本。 我按照这里find的解释,但它没有做任何比以前更多的事情:上传带有hexa名称的文件。 此外,两个事件onFileUploadStart和onFileUploadComplete似乎从来没有被触发,因为我没有得到任何logging在我的控制台。 我为服务器和路由使用了两个单独的文件: app.js /** * Dependencies */ var express = require('express'); var path = require('path'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); /** * Importation of routes */ var routes = require('./routes/index'); var recog = require('./routes/recog'); /** * Express */ var app = express(); […]

Multer不接受数组格式的文件会导致“Unexpected File Error”

Multer是一个与节点js一起使用的模块,用于上传文件。 我正在使用ngfile upload模块的angular度。 当我一个接一个地发送多个文件时,它工作的很好,没有任何错误,但是当我以数组格式一次性发送所有文件,然后根据Multer的github的build议在服务器端进行必要的更改时,仍然出现错误。 这是错误 Error: Unexpected field at makeError (C:\nodefiles\new\node_modules\multer\lib\make-error.js:12:13) at wrappedFileFilter (C:\nodefiles\new\node_modules\multer\index.js:39:19) at Busboy.<anonymous> (C:\nodefiles\new\node_modules\multer\lib\make-middleware.js:109:7) at Busboy.emit (events.js:118:17) at Busboy.emit (C:\nodefiles\new\node_modules\multer\node_modules\busboy\lib\main.js:31:35) at PartStream.<anonymous> (C:\nodefiles\new\node_modules\multer\node_modules\busboy\lib\types\multipart.js:209:13) at PartStream.emit (events.js:107:17) at HeaderParser.<anonymous> (C:\nodefiles\new\node_modules\multer\node_modules\busboy\node_modules\dicer\lib\Dicer.js:51:16) at HeaderParser.emit (events.js:107:17) at HeaderParser._finish (C:\nodefiles\new\node_modules\multer\node_modules\busboy\node_modules\dicer\lib\HeaderParser.js:70:8) at SBMH.<anonymous> (C:\nodefiles\new\node_modules\multer\node_modules\busboy\node_modules\dicer\lib\HeaderParser.js:42:12) at SBMH.emit (events.js:118:17) at SBMH._sbmh_feed (C:\nodefiles\new\node_modules\multer\node_modules\busboy\node_modules\dicer\node_modules\streamsearch\lib\sbmh.js:159:14) at SBMH.push (C:\nodefiles\new\node_modules\multer\node_modules\busboy\node_modules\dicer\node_modules\streamsearch\lib\sbmh.js:56:14) at HeaderParser.push (C:\nodefiles\new\node_modules\multer\node_modules\busboy\node_modules\dicer\lib\HeaderParser.js:48:19) at Dicer._oninfo […]

如何使用multer存储带有文件扩展名的文件?

pipe理将我的文件存储在一个文件夹,但他们存储没有文件扩展名。 有没有人知道我将如何存储文件的扩展名?

上传文件到远程服务器使用multer sftp在express Node js?

我试图使用节点js中的multer-sftp将file upload到远程服务器。 因为我正在关注官方文档npm multer-sftp 。 以前我已经将file upload到Amazon S3而不是远程服务器。 现在我想上传文件到远程服务器。 API: exports.newFileUpload = function(req , res , next){ var storage = sftpStorage({ sftp: { host: 'http://www.port*****es.in/', port: 22, username: 'username', password: 'password' }, destination: function (req, file, cb) { cb(null, 'images/') }, filename: function (req, file, cb) { cb(null, file.fieldname + '-' + Date.now()) } }) […]