Tag: multipartform data

如何使用node.js中的请求发送多部分formData中的对象

我试图制定一个POST使用请求 ,但我不断收到一个错误,我试着将对象添加到formData 。 var fs = require('fs'); var request = require('request'); var file = './test/assets/test.pdf'; var opts = { url: 'my_service', method: 'POST', auth: { user: 'username', password: 'password' }, json: true, formData: { front: fs.createReadStream(file), to: { name: 'joe bob', address_1: '123 main st', … } } }; request(opts, function(err, resp, body) { console.log(err, […]

为什么bodyparser.jsonparsingmultipart / formdata?

我试图用multer中间件来parsingmultipart / from-data。 这是我的发帖要求: POST /api/files HTTP/1.1 Host: localhost:3000 Content-Type: multipart/form-data; boundary=—-WebKitFormBoundary7MA4YWxkTrZu0gW Cache-Control: no-cache Postman-Token: f55caef0-1d59-fe80-f6ae-00e38fcbc92a —-WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="guia1"; filename="guia_1_MC_2012_2c.pdf" Content-Type: application/pdf —-WebKitFormBoundary7MA4YWxkTrZu0gW 这是我的app.js代码: var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var validator = require('express-validator'); var multer = require('multer'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(multer({ dest: './files/'})); app.use(validator()); 当我这样做时,我得到以下错误(现在更新): […]

使用Connect Multiparty处理节点js中的请求

Error: Request aborted at IncomingMessage.onReqAborted (D:\ProjectName\node_modules\express\node_modules\connect\node_modules\multiparty\index.js:131:17) at IncomingMessage.EventEmitter.emit (events.js:92:17) at abortIncoming (http.js:1911:11) at Socket.serverSocketCloseListener (http.js:1923:5) at Socket.EventEmitter.emit (events.js:117:20) at TCP.close (net.js:466:12) 使用连接多方中间件在节点js中上传多个文件时出现此错误。 我甚至没有上传大文件。 其不超过50MB。 当上传文件时断开networking连接时出现此错误。 有没有办法来处理这个错误。

使用多方将图像从ipad app上传到节点js服务器

我是非常新的JavaScript和节点js。 我正在从我的iPad应用程序上传图像,以使用多方模块来rest节点js(快速js)的api。 这是我在目标c中的图像上传代码。 NSData *imgData = UIImageJPEGRepresentation(img.image, 0.2); NSString *urlString = @"http://localhost:3000/api/uploadimage"; NSString *str = @"displayImage"; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; [request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData]; [request setHTTPShouldHandleCookies:NO]; [request setTimeoutInterval:30]; [request setURL:[NSURL URLWithString:urlString]]; [request setHTTPMethod:@"POST"]; NSString *boundary = [NSString stringWithFormat:@"—————————14737809831464368775746641449"]; NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary]; [request setValue:contentType forHTTPHeaderField: @"Content-Type"]; NSMutableData *body = [NSMutableData data]; [body […]

将多部分表单上传到另一台服务器

我正在尝试处理我的Node Express服务器上的POST请求,以处理多部分表单上传,在我的情况下,用户正在上传图像。 我想通过我的快速应用程序上传到另一台服务器,这是目前安装使用身体分析器,我也看到不支持多部分bode,而是build议使用一些其他库。 我见过多方,但我不确定如何使用我的客户端应用程序。 在我的客户端代码中,我发布了一个FormData对象,如下所示: function create(data, name) { var formData = new FormData(); formData.append('file', data, name); return this.parentBase.one('photos').withHttpConfig({transformRequest: angular.identity}).customPOST(formData, undefined, undefined, {'Content-Type': undefined}); } 注意:我在这里使用了AngularJS的Restangular库 所以从我理解的多方文档看来,我必须处理表单上传事件,并在表单上传完成后再处理。 事情是,我希望我可以直接将上传到另一台服务器。 事先我的客户端应用程序直接调用这个服务器,但我现在试图让所有的东西通过Express路由,这是可能的,还是我必须使用像multiparty? 请求文档给出了一个使用formData的例子,但我不确定这将如何与我见过的多scheme例一起工作。 例如,一旦上传使用mutliparty在Express中完成,那么我是否必须构造另一个formData对象,然后再进行一个请求,否则我将不得不将每个部分传递给另一个服务器? 我很困惑,请有人帮我解决这个问题吗? 谢谢 编辑 好的,我在@yarons注释中看过了multer,这似乎是我想要使用的东西,我试图用我的express路由器设置来使用它,如下所示: routes.js var express = require('express'), router = express.Router(), customers = require('./customers.controller.js'), multer = require('multer'), upload = multer(); router.post('/customers/:customerId/photos/', upload.single('file'), customers.createPhoto); […]

在evolution.voxeo.com的voiceXML,得到奇怪的错误

我在voiceXML中是新的,我正尝试使用evolution.voxeo.com来运行简单的XML代码。 根据他们的网站 ,我们可以以多部分格式发布录制的audio。 所以这里是我的XML代码,运行良好,没有logging元素。 但是当我添加logging元素,我得到错误。 我得到错误的事实是奇怪的,因为我正在接收我的电脑中的实际audio文件。 00089 6c51 02:55:21 AM (http://65.29.170.122/, 1): Content is not allowed in prolog. 00090 6c51 02:55:21 AM Exception: error.semantic XML parse error(s) occurred in: http://65.29.170.122/ (http://65.29.170.122/, 1): Content is not allowed in prolog. Dialog stack trace: State (Dialog) URL (Document) ————– —————————— ___state1 http://webhosting.voxeo.net/196324/www/favorite_color.vxml?session.callerid=dcdac2bd-fa98-4c20-9d8e-69b3080a04fd&session.accountid=196324&session.sessionid=a28b97484d31d027e5bc03b1295d6c51&session.parentsessionid=f75bf363646a3e7a993789c7915829f3&session.virtualplatform=Staging-DTMF&session.calledid=9991483369 00091 6c51 02:55:21 AM =========================== An […]

Android客户端parsing多部分表单数据到非ASCII

你能解释为什么Android客户端parsingmultiparform数据非ASCII的聊天。 而在这里使用邮差工作良好的文件是我的app.js代码 var multipart = require('connect-multiparty'); var apiRoutes = require('./routes/apiRoutes'); app.set('views', path.join(__dirname, 'views')); app.use(logger('dev')); app.use(bodyParser.json({limit: '50mb'})); app.use(bodyParser.urlencoded([{extended: false},{ uploadDir:path.join(__dirname, 'uploads') }, {parameterLimit:100000}, {limit: '50mb'}])); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use(express.static(path.join(__dirname, 'uploads'))); app.use(multipart()); app.use(apiRoutes); 和apiRoutes点我的上传function包含简单的打印需求参数使用邮递员工作良好 console.log("mediaChat called", req.body, req.files); 响应 mediaChat called { apiKey: '123' } { media: { fieldName: 'media', originalFilename: 'default.png', path: '/tmp/KFnwsKGp-f4woTaBH6aPR-qa.png', headers: { 'content-disposition': […]

multer,multiparty和connect-multiparty + Nodejs之间的区别

对Node世界来说是新的。 UseCase: 在Angular上有一个简单的上传XLS文件的scheme,在Node上处理它们,进行一些操作,然后将JSON保存到MongoDB。 在收到来自Angular的文件后,我一直在寻找parsing/处理Node上文件的最佳方法,然后在这些着名的节点模块 – multer , multiparty和connect-multiparty上遇到文章。 每篇文章解释如何使用相应的模块,并找不到任何一个告诉哪一个使用时 。 当我试图在磁盘存储上保存一个文件时,我发现这个主要是使用的,这不足以满足我的使用情况。 那么我应该忽略multer还是实际使用它? 我应该什么时候使用multiparty和connect-multiparty ?

Node.jsfile upload(Express 4,MongoDB,GridFS,GridFSstream)

我正在尝试在我的node.js应用程序中设置一个文件API。 我的目标是能够直接将文件stream写入到gridfs,而不需要最初将文件存储到磁盘。 这看起来像我的创build代码正在工作。 我能够保存file upload到网格。 问题是阅读文件。 当我尝试通过networking浏览器窗口下载保存的文件时,我发现文件内容包装了如下内容: ——WebKitFormBoundarye38W9pfG1wiA100l Content-Disposition: form-data; name="file"; filename="myfile.txt" Content-Type: text/javascript ***File contents here*** ——WebKitFormBoundarye38W9pfG1wiA100l– 所以我的问题是我需要做什么从文件stream中剥离边界信息,然后将其保存到gridfs? 这是我正在使用的代码: 'use strict'; var mongoose = require('mongoose'); var _ = require('lodash'); var Grid = require('gridfs-stream'); Grid.mongo = mongoose.mongo; var gfs = new Grid(mongoose.connection.db); // I think this works. I see the file record in fs.files exports.create […]

如何使用Busboy访问Express 4 req.body对象

我需要一个简单的方法来使用busboy-connect来访问req对象中的多部分表单数据。 我正在使用Express 4,现在需要先前内置的function模块。 我希望req.body对象在我的路由中可用,但是busboy.on('field')函数是asynchronous的,在传递它之前不会处理所有的表单数据以继续执行代码。 有一个中间件模块构build在busboy之上,称为multer ,它在获取路由之前获取req.body对象,但它覆盖了从路由中定义busboy.on('file')事件的能力。 这是我破碎的代码: // App.js app.post(/users, function(req, res, next){ var busboy = new Busboy({ headers: req.headers }); // handle text field data (code taken from multer.js) busboy.on('field', function(fieldname, val, valTruncated, keyTruncated) { if (req.body.hasOwnProperty(fieldname)) { if (Array.isArray(req.body[fieldname])) { req.body[fieldname].push(val); } else { req.body[fieldname] = [req.body[fieldname], val]; } } else { req.body[fieldname] […]