Tag: multipartform data

如何在浏览器和node.js上使用HTTP API发布Uint8Array到IPFS?

我一直试图这样做几个小时,但没有成功。 相关的API端点是block / put 。 IT要求HTTP请求使用multipart/form-data ,但我不知道如何去做。 这是一个尝试: const req = require("xhr-request-promise"); const FormData = require("form-data"); (async () => { const form = new FormData(); form.append("data", new Buffer([1, 2, 3])); console.log(await req("https://ipfs.infura.io:5001/api/v0/block/put", { method: "POST", body: form })); })();

Node.jsfile upload服务器没有第三方模块

我想parsing上传文件并保存没有任何第三个模块,但仍然不成功。 我错过任何部分? 或者它需要先转换为缓冲区? var http = require('http'); const fs = require ('fs'); http.createServer(function (req, res) { if (req.url == '/fileupload') { var body = ''; req.on('data', (data) => { body += data; }); req.on('end', () => { body = body.replace(/-.+-/g, '').replace(/WebKit.+|Contentdata.+|Content-Type.+/g, ''); fs.writeFile('test.png', body, (err) => { if (err) throw err; console.log('The file has been […]

Fille上传node.js,multer,imagemagick无法正常工作

以下是我的代码。 我在MVC模板中使用express。 我使用邮递员在表格数据模式下testing这条路线。 目录是public/images/avatar/1510932719839-BHqhegjFMc3Qf/只有我上传的文件(图片)不在其中。 我没有收到任何错误,没有任何问题,没有崩溃。 app.js let routes = require('./routes')(app, dbPool, passport, redisClient); app.use(express.static('public')); app.get("*", function (req, res) { fs.createReadStream("./public/index.html").pipe(res); }); app.use(bodyParser.urlencoded({ extended: true, limit: '50mb', parameterLimit: 10000 })); app.use(bodyParser.json()); app.listen(80); fileUploadRoute.js let FileUploadController = require('./../controllers/fileUploadController'); module.exports = function (app, dbPool, passport, redisClient) { let fileUploadController = new FileUploadController(dbPool, redisClient); let uploadRouteImage = "/api/upload/image/"; let […]

来自Busboy的奇怪行为

我和Busboy有个奇怪的问题。 我通过使用Invoke-RestMethod来从PowerShell上传文件到Node.js中编写的远程服务器。 如果我使用streamfunction,代码工作没有任何问题。 它接受二进制数据并将文件写入本地驱动器而不会打嗝。 然而,当我使用Busboy时,它给了我“缺less边界错误”。 为了解决这个问题,我将边界传递给了Invoke-RestMethod。 这摆脱了边界的错误,但Busboy根本不会启动文件事件。 我一直在挠头,试图弄清楚已经两天了,解决scheme似乎没有了我。 几个星期前,这个代码工作得很好,但现在已经不复存在了。 我不确定工作环境是否有变化,但很奇怪。 stream代码:这工作得很好 服务器代码 fs = require('fs'); server = restify.createServer(); server.post('/file',restify.queryParser(),uploadFile); function uploadFile(req, res, next) { var wstream = fs.createWriteStream("x.jpg"); req.pipe(wstream); } 电源shell $upload= Invoke-RestMethod -Uri "http://localhost:8088/file" -Method Post -InFile $imagePath -ContentType 'multipart/form-data' 商店代码:这会引发Missing Boundary错误 服务器代码 fs = require('fs'); server = restify.createServer(); server.post('/file',restify.queryParser(),uploadFile); function uploadFile(req, res, next) […]

我们如何防止用户上传文件并占用带宽?

场景:我的networking服务器的带宽有限。 用户正在将大file upload到我的nodejs服务器。 我意识到这个尺寸太大了以后就无效了 req.on("data", (chunk) => { size += chunk.size; if(size > 100) { // how would I abort? } }); 我将如何中止上传,并不会消耗用户的分段上传带宽? req.removeAllListeners()会在这种情况下做这个工作吗?

NodeJS:Stream.pipe(stream)工作,但Stream.read()不

我是NodeJS的新手,我基本上想做的是通过HTTP将.pdf上传到我的服务器。 我正在为Content-Type multipart / form-data使用POST rquest。 在NodeJS中,我使用多方来parsing我的请求。 有趣的是,当我想访问我的请求的表单数据部分,在我的情况下,这是一个JSON对象,当我pipe()从多方到标准输出的stream,但是当我读()stream,我只得到null。 这是我的代码(可能)重要的一部分: form.on('part', (part) => { // part is the Stream returned by multiparty if(!part.filename) { // only fields, not files console.log(part.read()); // output is null part.pipe(process.stdout); // output is my JSON object part.resume(); } } 我没有得到任何错误。 我很抱歉,因为我犯了一个真正的转储错误… 提前致谢, 路易斯!

如何使用带有本地Node.js https.request的multipart / form-data头来上传文件?

我试图从node.js使用本地https.request从我的电脑上传文件。 我的代码如下所示: let query = require('https').request({ hostname: 'somehost.com', path: '/path/to/upload', headers: {'Content-Type': 'multipart/form-data'}, method: 'POST' }, (res) => { let data = ''; res.on("data", (chunk) => { data += chunk.toString('utf8'); }); res.on('end', () => { console.log("data"); }) }); query.on("error", (e) => { console.error(e); }); query.write(Buffer[ {key1: 1, file: require("fs").createReadStream("/path/to/file.txt")} ]); // I don't know how […]

pipe道stream请求发布不起作用

我已经阅读请求的文档页面 ,可以将文件stream式传输到PUT或POST请求,如下所示: fs.createReadStream('file.json').pipe(request.put('http://example.com/obj.json')); request.get('http://google.com/img.png').pipe(request.put('http://example.com/img.png')); 但它似乎不起作用。 我试图设置一个本地服务器上传文件使用不同的库。 快车打杂: var express = require('express'); var app = express(); var fs = require('fs'); var bb = require('express-busboy'); var app = express(); bb.extend(app, { upload: true, path: './img/', allowedPath: /./ }); app.post('/upload', function(req, res) { console.log(req.files); }); var server = app.listen(process.env.PORT, function() { console.log('Listening on port %d', server.address().port); }); 和强大: […]

如何从VueJs提交“multipart / form-data”

我在前端使用VueJs / axios,在nodejs使用简单的file upload工作。 到目前为止,所有的尝试都失败了。 虽然这可以在angular度1/2使用ng-upload和其他类似的插件100种方式实现。 但是VueJs似乎缺乏这个基本的function。 根据我的研究axios不支持“multipart / form-data”。 Ref https://github.com/mzabriskie/axios/issues/789 。 multer和其他nodejs库似乎可以从1/2的angular度无缝地使用“multipart / form-data”。 但是,相同的function不适用于VueJs。 除了axios支持“multipart / form-data”又名:WebKitFormBoundary吗? 非常感谢

express.js多file uploadcallback

我是新来的node.js&express.js,所以…我想上传多个文件,后来与他们合作。 但我需要发送一个响应(好的或错误的状态),所有的文件已经保存在磁盘上,或者如果一个失败 – 然后发送错误callback。 现在我有这样的代码: var express = require('express'); var router = express.Router(); var multipart = require('connect-multiparty'); var multipartMiddleware = multipart(); var fs = require('fs'); router.post('/upload', multipartMiddleware, function(req, res) { var reqBody = req.body; var reqFiles = req.files; saveFile(reqFiles, 'main.xlsx', function(err) { if (err) { res.status(404).send(''); return; } res.send('Multi-File File uploaded'); } }); function saveFile(file, […]