Tag: file upload

使用节点http模块上传文件

如何使用节点http模块(并且没有第三方库)将file upload到远程服务器? 我尝试了以下,但它不工作(我没有在服务器上的数据): function writeBinaryPostData(req, filepath) { var fs = require('fs'); var boundaryKey = Math.random().toString(16); // random string var boundaryStart = `–${boundaryKey}\r\n`, boundaryEnd = `\r\n–${boundaryKey}–`, contentDispositionHeader = 'Content-Disposition: form-data; name="file" filename="file.txt"\r\n', contentTypeHeader = 'Content-Type: application/octet-stream\r\n', transferEncodingHeader = 'Content-Transfer-Encoding: binary\r\n'; var contentLength = Buffer.byteLength( boundaryStart + boundaryEnd + contentDispositionHeader + contentTypeHeader + transferEncodingHeader ) + fs.statSync(filepath).size; […]

在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将一个base64映像从IOS上传到S3

我有以下代码,使用node.js将图像从ios设备上传到AWS S3: var buf = new Buffer(req.body.image.replace(/^data:image\/\w+;base64,/, ""),'base64') var s3bucket = new AWS.S3({params: {Bucket: 'forplay-static', Key: 'test.png'}}); s3bucket.putObject(buf, function(err, data) { if (err) { return res.send({ success: false, err: err }); } else { return res.send({ success: true }); } }); 我发布的图片是: http : //pastebin.com/kcmXJbRd 这将在err中返回以下错误: { "code": "UnexpectedParameter", "name": "UnexpectedParameter" } 上传一个base64镜像到S3的正确方法是什么?

file upload程序给出错误

运行这个代码时: http://planetcakephp.org/aggregator/items/3241-streaming-file-uploads-with-nodejs var http = require('http'); var multipart = require('./multipart'); var sys = require('sys'); var server = http.createServer(function(req, res) { console.log('in upload files'+req.url); switch (req.url) { case '/': display_form(req, res); break; case '/upload': upload_file(req, res); break; default: show_404(req, res); break; } }); server.listen(8000); function display_form(req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); res.end( '<form action="/upload" method="post" enctype="multipart/form-data">'+ […]

Node.js:处理file upload,“数据”事件从不叫

描述问题的一个简单的例子…客户端(使用HTML5文件API和XMLHttpRequest2): var xhr = new XMLHttpRequest () xhr.open ('POST', '/upload', true) xhr.send (file) /* sends as plain binary blob, no multipart/form-data */ 服务器端: var size = 0 request.setEncoding ('binary') request.on ('data', function (chunk) { console.log ('Received ' + (size += chunk.length) / (1024.0 * 1024.0) + ' Mb') }) request.on ('end', function (chunk) { console.log […]

上传没有multipart / form-data的文件(服务器到服务器)

从这个回答https://stackoverflow.com/a/1695287/256400 ,我觉得需要multipart / form-data从浏览器上传文件到服务器。 但是,如果我的用例是上传文件从服务器到服务器不应该工作,如果我把内容types作为application / octet-stream甚至特定的types,如图像/ PNG 我在node.js服务器上试验了这个,并使用fs.readFile来获取文件内容,并使用REST库来执行HTTP POST。 但是我对读取文件时使用的编码有点困惑。 被默认的fs.readFile返回Buffer对象。 我试图使用二进制文件但在这里的文档说,它的二进制被弃用,有利于缓冲区对象。 在这里读取文件的内容和上传的正确方法是什么? 这可以做到没有多部分/forms的数据

上传,然后下载一个大的文件,与Windows Azure,blob存储和nodejs

我试图做一个网站上的Windows Azure,它允许用户通过网页提交一个表单,用POST方法发送表单的文件。 我正在使用mac操作系统的最新版本,在mac book air 2013上。 服务器接收到这个表单,将这个文件stream式传输到一个blob,然后把用户redirect到一个新的网页,并且有一个到blob的链接(这是公开的)。 这样,用户可以稍后获得他的文件。 我所做的似乎很小的文件(一个图像〜35KB,一个Dmg文件〜950MB)正常工作。 但是当涉及到更大的文件(〜20MB)时,服务器注意到上传过程中出现了错误(在大约1分20秒或2分40秒之后,不记得)。 客户端(谷歌浏览器)似乎并不知情,并继续上传文件。 但是当它结束时,它显示一个503错误。 我尝试了2个大约20MB的dmg文件,得到了相同的结果(问题1)。 然后用一个〜57MB的dmg文件(谷歌浏览器安装程序)和几个〜700MB的文件(使用〜30MB / s的上传互联网访问),服务器似乎没有任何问题,也没有客户端。 上传过程直到结束,我得到存储在blob存储中的文件的链接。 但是当我下载它的时候,文件比预期的要大一些(一个57MB的文件多了4096个字节,大约700MB的文件多了40KB)。 我尝试了几种types的文件:能够重放video(尽pipe有一些奇怪的东西)是足够好的,但是当我尝试它时,dmg却无法挂载(我猜是因为完整性检查很好地工作)(问题2 ) 我想知道什么数据已经被添加到我的文件。 所以我创build了两个与我的〜57MB dmg文件大小相同的文件。 第一个是满了字符0,秒交替字符0和1.当我上传和下载他们,他们没有原始大小,但他们仍然只包含000000 ….或010101010 ….虽然,真的有更多的0000 …和更多的0101010 ….比原来的版本(但只有0和01)。 所以我去了blob存储pipe理器页面,我看到每个文件的大小似乎比我的电脑上小(例如:54.33MB,而不是〜57MB)。 可能是因为不同的文件系统,…? 让我们总结一下问题2:我上传了一个大文件,看起来比我的笔记本上的小,然后我下载了它,实际上比原来的版本要大。 奇怪,不是吗? 有任何想法吗 ? 谢谢你的帮助 ! 这是我的server.js文件: var http = require('http'); var url = require("url"); var express = require('express'); var querystring = require('querystring'); var fs […]

将csvfile upload到数据库(leveldb)

我正在写一个小应用程序,并坚持在我想上传.csv文件的部分,并将条目存储到我的数据库。 我使用快递框架,并与多部门/公务员和强大的玩弄。 我成功上传了文件并将其保存在服务器上。 我现在可以提取数据并再次删除它,但是我认为使用Node.js更好的方法是将每行转换为数据库对象并将其存储,而不必将整个文件保存在服务器上。 我发现一些file upload的例子,但没有即将转换为对象/存储到数据库。 也许你能帮我吗? 下面你会看到上传路由的“发布”请求。 exports.uploadTradesProcess = function (req,res) { var form = new multiparty.Form(); form.onPart = function(part) { } form.parse(req, function(err, fields, files) { res.writeHead(200, {'content-type': 'text/plain'}); res.write('received upload:\n\n'); res.end(util.inspect({fields:fields, files:files})) }); return; } “form.onPart”行还没有做任何事情。 我想知道是否可以使上传文件中的每一个新行都切成块/部分… 这是数据库条目的模板: var Trade = new dulcimer.Model({ date: {type: 'integer'}, exchange: {type: 'string'}, currency1: {type: 'string'}, […]

Node Express Busboy文件和字段上传

当用Express来处理图片上传时,我可以得到一个multipart / form-data的字段和文件,如下所示: var busboy = require('connect-busboy'); app.use(busboy()); app.post('/something', function(req,res) { req.pipe(req.busboy); req.busboy.on('field', function(fieldname, val) { // do stuff here with fields… } req.busboy.on('file', function (fieldname, file, filename) { // do stuff here with the file } }); 我想知道的是,有一个例子,在我处理文件之前,我想知道这些字段是什么。 在我的实验中,似乎每次都得到第一个字段。 有谁知道这是否总是如此?

POST net :: ERR_INSUFFICIENT_RESOURCES,同时使用nodeJS上传多个图像

我已经做了一些研究,但主要是我已经结束了查询,以限制上传文件的数量。 我正在开发一个Web应用程序(在nodeJS服务器上运行),它具有上传文件(主要是图像)的function。 现在,我正在使用一个简单的HTML表单,上传内容如下: <input id="myFile" type="file" name="file" multiple="multiple"/> 我们的目标是接受来自用户多达几千个图像的多个file upload。 我使用nodejs模块强大的parsing上传的表单元素和处理多个图像(存储,重命名..等)。 form.on('field', function(field, value) { fields.push([field, value]); }) form.on('file', function(field, file) { files.push(file); }) form.on('end', function() { console.log('done'); }); form.on('progress', function(bytesReceived, bytesExpected) { console.log('Progress so far: '+(100*(bytesReceived/bytesExpected))+"%"); }); form.parse(req, function(err, fields, files) { //my logic to storing and handling the file uploads } 所以现在,我能够一次处理大约8000张图像(256×256尺寸)的上传。 但是,如果用户select超过这个限制,应用程序崩溃redirect到“这个网页不可用”的页面。 […]