Tag: multer

在Krakenjs应用程序中,file upload与Multer挂起

我在Nodejs Kraken应用程序中使用Muller(^ 0.1.6)来上传文件。 我查看了npm上的multer文档,看起来使用这个模块进行file upload非常简单。 但是我一直在上传本地机器上的文件时遇到问题。 有趣的是,我注意到文件被上传,但是我的服务器挂起,并且控件永远不会到负责呈现下一页的应用程序中的下一个中间件。 我也注意到,当服务器挂起时,它试图再次上传文件,最后超时说“没有数据收到”。 由于试验员的重试,我看到上传了同一文件的两个副本。 这是我使用multer模块的kraken应用程序代码: index.js(与package.json相同级别的root级别index.js) … ….. app = module.exports = express(); app.use(kraken(options)); app = module.exports = express(); app.use(kraken(options)); app.on('start', function () { console.log('Application ready to serve requests.'); console.log('Environment: %s', app.kraken.get('env:env')); }); app.use(multer({ dest: '/Users/abc/temp/fileuploads', limits: { fieldNameSize: 500, files: 2, fields: 5 }, rename: function (fieldname, filename) { […]

Node JS如何将请求数据与请求数据一起POST到另一个服务器/ api

我想从我的节点JS应用程序发布到另一个REST API的图像。 我有在由Node JS读取的Mongo DB中的图像(作为二进制数组数据),然后应该被发送到另一个API。 我面临的问题是如何随图像一起发送请求数据? 我有这个原始数据(这是在JSON格式),应该与图像一起POST: {"data":{"client":"abc","address": "123"},"meta":{"owner": "yourself","host": "hostishere"}} 我需要使用“请求”模块来做到这一点。 如果能帮助更好的话,我可以使用'multer'。 但是,我坚持如何发送上述请求数据与图像stream一起。 以下是我目前的代码。 你能帮我完成吗? var options = { host: 'hostname.com', port: 80, path: '/api/content', method: 'POST', headers:{ 'Content-Type' : 'multipart/form-data' } }; var request = http.request(options, function(response) { var str = ''; var respTime =''; response.on('data', function (chunk) { str = str.concat(chunk); }); […]

可能的问题与Muller? 错误:Router.use()需要callback

用yeoman angular-fullstack构build一个网站在本地效果很好,但是当我部署和使用dist / release版本时,在我的服务器上给了我这个有趣的错误。 Error: Router.use() requires callback functions but got a [object Object] at Function.proto.use (/home/bitnami/htdocs/dist/node_modules/express/lib/router/index.js:327:11) at Object.<anonymous> (/home/bitnami/htdocs/dist/server/api/save/index.js:10:8) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Function.<anonymous> (/opt/bitnami/nodejs/lib/node_modules/pm2/node_modules/pmx/lib/transaction.js:62:21) at Module.require (module.js:365:17) at require (module.js:384:17) at module.exports (/home/bitnami/htdocs/dist/server/routes.js:13:25) 它接近它在这条线上的失败 router.use(multer({ dest: './public/uploads/'})); 虽然它在当地工作完全罚款? 让我有点难住。 不知道它是否与垂涎有关? 我有节点模块安装。 思考?

科多瓦ios错误:ENOENT,打开'/var/mobile/Containers/Data/Application/../../image.jpg in heroku

我正在尝试从iPhone上传图像。 我正在使用cordova插件中的离子,并在后端使用express / node.js。 这段代码工作正常,当我尝试在本地。 但是当我运行在heroku我得到这个错误 错误:ENOENT,打开/var/mobile/Containers/Data/Application/../../image.jpg 我正在使用multer来处理多部分/表单数据 在expressjs / node.js端我有 router.post('/me/avatar', ensureAuthenticated, function(req, res) { fs.readFile(String(req.body.imageUrl).substring(7), function(err, data) { //using String(req.body.imageUrl).substring(7) to avoid file path like "file:///var/mobile/.." in ios simulator and iphone if (err) { console.log(err) res.send({ message: "Error" }) }; }); }) 在离子方面我有 $scope.updateAvatar = function() { var options = { maximumImagesCount: 1 […]

使用NodeJS和Multer将图像上传到S3。 如何上传整个文件onFileUploadComplete

我正在使用NodeJS和Multer将file upload到S3 。 从表面上看,所有东西似乎都在工作,文件被上传了,当我login到AWS控制台时,我可以在bucket看到它们。 但是,大多数时候,当我按照文件的链接,文件被打破,文件的大小通常比原来的文件小得多。 当文件到达服务器时,如果我log ,文件大小是正确的,但是在S3上它是小得多的。 比如我刚刚上传了一个151kb的文件。 post请求正确地logging文件大小,但在S3上 ,文件说它是81kb。 客户端: uploadFile = (file) -> formData = new FormData() formData.append 'file', file xhr = new XMLHttpRequest() xhr.open "POST", "/upload-image", true # xhr.setRequestHeader("Content-Type","multipart/form-data"); console.log 'uploadFile' xhr.onerror = -> alert 'Error uploading file' xhr.onreadystatechange = -> if xhr.readyState is 4 console.log xhr.responseText xhr.send formData 服务器: app.use(multer({ // […]

Multer 1.0.3平均堆栈file upload

我正尝试上传一个简单的MEAN堆栈应用程序的multipart / form-data。 将所有内容放入一个文件并运行时,它可以正常工作。 Server.js var express = require('express'); var multer = require('multer'); var storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, 'uploads/'); }, filename: function (req, file, cb) { switch(file.mimetype) { case 'image/jpg' : case 'image/jpeg': case 'image/gif': var extension = file.mimetype.split("/"); extension = extension[extension.length-1]; break case 'video/quicktime': var extension = 'mov'; […]

使用Multer存储对象

我正在使用multer将file upload到服务器。 一切工作正常,除了在multer文件中实际提到的一个问题。 这是一个摘录: “请注意, req.body可能尚未完全填充”(意思是当存储对象文件名函数被称为我猜…)。 “这取决于客户端传输字段和文件到服务器的顺序” 这正是我的问题所在。 我确实validation了req.body.ID将它传递给服务器,但是在multer定义了文件的名字之后,它被填充了。 有没有人有任何build议如何处理这个问题? 这里是我的代码片段(文件名最后是“Undefined”与正确的jpg扩展名): //Storage object var storage = multer.diskStorage({ destination: './uploaded', filename: function(req, res, cb) { cb(null, req.body.ID + '.jpg') } }); //File Upload Handle router.post('/file-upload', upload.single('image'), function(req, res, next) { console.log("routes module-/file-upload " + req.body.ID); // The file ID gets transmitted res.sendStatus(201); }); 这是我的HTML: <form id="fileForm" […]

错误:多部分数据的意外结束] storage.Error:express.js-iOS(Objective-C)应用程序中的

我试图find这个问题的解决scheme,无法在node.js / express.js和iOS应用程序中find任何东西。 我的客户有要求不要使用任何第三方库。 所以,我不使用AFNetworking。 任何帮助,或者如果有人可以告诉为什么错误即将到来将不胜感激。 我正在尝试发送多部分表单数据,图像与文本。 每当我做POST我得到错误:多部分数据的意外结束。 iOS中POST的代码: NSURL *url = [NSURL URLWithString:@"http://172.16.0.5:8080/upload"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setHTTPMethod:@"POST"]; NSString *boundary = @"YOUR_BOUNDARY_STRING"; NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary]; [request addValue:contentType forHTTPHeaderField:@"Content-Type"]; NSMutableData *body = [NSMutableData data]; [body appendData:[[NSString stringWithFormat:@"\r\n–%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"photo\"; filename=\"%@.jpg\"\r\n", self.path] dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[@"Content-Type: […]

Express / Multer在ucs2中检测到文本文件的7位编码。 他们是同义词吗?

在一个node.js应用程序中,我收到上传的文本文件,与Multer中间件。 这是一个有效的ucs2编码的文件。 当我尝试读取它时,我得到一个带有buffer.toString()的不可读的string。 它通过buffer.toString('ucs2')得到正确的输出。 但是Multer给出的编码是req.file.encoding === '7bit' 。 我的问题是: 我可以做“7bit”和“ucs2”之间的直接关系 ,所以每当我从Multer得到“7bit”,我可以做一个buffer.toString('ucs2') ? 或者它也可能意味着其他编码? 在后一种情况下,我怎样才能确保获得正确的文本文件的内容? 这里是代码的一部分: var getFile = function(req, res, next) { var encoding = req.file.encoding; fs.readFile(req.file.path, function (err, buffer) { var data = buffer.toString(encoding); } } 这个确切的代码在这里不起作用,因为encoding给出了“7位”,这是toString无法理解的。 谢谢。

用于file upload的JWT令牌和Multer(节点)

我需要一些帮助,弄清楚如何使这个工作 – 我已经testing,并有我的'/用户'路线JWT身份validation和SSL工作。 我试图安全地允许用户上传audio文件,也使用JWT和SSL路由。 authentication中间件工作,而multer工作,让我上传文件,当我注销authentication中间件。 但是,当我离开中间件时,上传的文件是在我的系统上创build的,但文件无法正确上传,我得到一个404错误。 谢谢你的帮助! server.js(主文件) var express = require('express') , app = express() , passport = require('passport') , uploads = require('./config/uploads').uploads , user_routes = require('./routes/user') , basic_routes = require('./routes/basic') , jwt = require('jwt-simple'); // get our request parameters app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); // Use the passport package in our application app.use(passport.initialize()); […]