Tag: file upload

将图片上传请求转发至其他服务器

我正在尝试构build一个基于所谓的“微架构”的NodeJS REST API项目(基本上是可以完全独立运行的多个较小的NodeJS项目,但是同时工作)。 目前用户可以从应用程序上传图片,然后我的NodeJS后端进行适当的处​​理和保存。 现在,我想要做的是以下几点: 用户从应用程序中select要上传的图像 – >应用程序向“主API”端点发出请求 – >主API端点然后将此请求转发到“图像服务” – >一旦图像服务(这是一个完全不同的服务器)已成功完成,它应该返回存储图像的URL到主API服务器端点,然后返回到应用程序的信息。 我的问题是,如何将图像上传请求从一台服务器转发到另一台服务器? 理想情况下,我不希望主API临时存储图像,然后向图像服务发出请求。 我想要的是直接将Main API接收的数据转发到Image Service服务器。 我想你可以说我想将数据从一个地方“stream”到另一个地方,而不必临时存储在磁盘或内存上。 我简直就是想让它从一台服务器“隧道”到另一台服务器。 这是可能的,这是一个有效的方法吗? 我只想要1个中心点的应用程序访问,我不想它知道这个图像服务服务器。 我希望应用程序只向主API提出请求,然后根据需要调用我的其他小型服务。 我正在使用NodeJS,Express,Multer(用于图像上传)和Digital Ocean托pipe(如果这应该有所作为)。

Node.js不是file upload(以及所有基于事件循环的语言)的好select – 是真的吗?

据说使用Node.js并不build议上传文件,因为它阻塞了IO循环直到完成,所以我试图stream式上传许多并发文件,并且我发现Sails.js(包装express和node)上传从第一,第二,第三…到N上传器,然后再回到第一上传器,以循环方式获得下一个块,结果是:所有file upload几乎同时完成这种方式类似于上传一个大小等于并发上传文件聚合大小的大文件。 我最后得出结论,高命中率的file upload系统不应该采用IO事件循环技术的语言来devise,而是每个连接的上传客户端都应该在服务器上有自己的线程来实现不同上传之间的正确分离以及服务器内存大小和客户端数量之间的线性关系。 我在这里得到了一个正确的结论,还是我误解了一些东西?

KeystoneJSfile upload不起作用在我的应用程序

我们正在和一个使用Keystonejs 0.3.16的客户端合作,提供将file upload到服务器文件系统的可能性(不是来自keystone admin ui)。 一方面,这似乎是微不足道的,我预计这将在不到一个小时的时间内工作。 经过这个工作,直到午夜之后,由于这样一个事实,我会睡得更好,我不得不暂时辞职,事实上,我的梦想因此而不得而知。 多么怪胎,你必须想想,得到一个生命! 但是,我相信很多人会知道这种感觉。 我现在转向你,社区和keystonejs作者,帮助我理解我在这里失去的东西。 我正在使用最新版本的密钥库,我尝试了多个库来处理作为中间件组件的多部分格式file upload。 Multer,强大的jfum,jquery-file-upload-middleware,connect-busboy,connect-multiparty …我都做了。 一个甚至没有安装,由于一些编译错误,由于不兼容的库,有些给了我500错误告诉我,req.status没有定义,所有其他人告诉我,上传顺利,但req.body和req.file留空了,没有下载。 我甚至添加了一些日志logging来彻底清除lib“makeMiddleware”,以查看文件是否在那里被parsing,但是busboy.on('file',…)事件永远不会被触发,表明没有文件存在于主体中。 我还没有在一个基本的Nodejs Express服务器应用程序中尝试过,只有在keystone js应用程序,所以也许keystone预处理post请求以某种方式解释这种现象,例如。 在文件内容到达我的中间件之前剥离文件内容? 这是我的基本forms: <form method="post" role="form" enctype="multipart/form-data" action="/bo/lib/upload"> <input type="file" id="imageFileId" name=" imageFileName"> <input type="submit" value="Upload Image"> <form> 在这里我使用Multer的例子是: var upload = multer({ dest: './uploads/'}); exports = module.exports = function(app) { app.post('/', upload.single('myimage'), function(req, res){ console.log(req.body) // […]

上传图像到Node.js图像“的未定义

对不起,我缩进了我是新来的node.js,试图上传图片到node.js检查很多的答案,如果我错了,请给我包装 1.bodyParser需要一个中间件来处理二进制文件,比如IMAGE,如果我不使用它,它会显示出来 undefine token 用Multer作为中间件,就像这样 var multer = require('multer') var upload = multer({ dest:'/Node/file-upload/uploads/' }); app.post('/upload',upload.array(),songs.upload); 按照这个 ,req.files是图像文件,req.body是文件名,所以我使用fs.readFile来读取文件 fs.readFile(req.files.image.path, function (err, data) 4.我需要一个文件path和文件名,我使用req.body var dirname = "/Node/file-upload/uploads/"; var newPath = dirname + req.body.image.filename; 把这些数据写入目的地 fs.writeFile(newPath, data, function (err) 我不确定我错过了什么,我花了10个小时做这个请帮忙 它总是告诉我TypeError:不能读取未定义的属性“图像” app.js var express = require('express') ,bodyParser = require('body-parser') ,app = express() ,multer = require('multer') ,binary […]

ng-switch导致上传错误

我用这个链接nodejs + multer + angularjs中的答案进行上传,而不用redirect在angularjs中进行file upload。 这完美的作品。 根据我的要求,我编辑了angular度html文件的代码(添加了ng-switch): <div ng-switch="MyVar"> <div ng-switch-when="car"> <input type="file" file-model="myFile"/> <button ng-click="uploadFile()">Upload</button> </div> <div ng-switch-when="dog"> dog </div> </div> 所有其他文件完全相同。 ng-switch工作正常。 但在这个更改后,我的file upload不会工作(导致服务器错误,因为没有文件发送)。 我的意思是,如果我删除开关部分在链接,那么它工作正常。 即使在select文件后,$ scope.myFile也显示为空。 为什么ng-switch导致问题? 请帮忙

Node.js – Multipart:XMLHttpRequest获取AJAX POST的进度

我必须更新客户端上传的文件的大小,类似于youtube的做法:上传一个文件,直到100%上传为止,您将获得上传到目前为止已上传文件的更新。 我知道你可以通过多部分req.files.myFile.size获得想要上传的文件的大小,并且会给你文件的全部大小。 但有没有办法获得磁盘上的文件的当前大小? 谢谢你!

使用node.js,node-formidable和socket.io向客户端发送上传进度更新

我的代码显示了一个简单的上传表单( node-formidable和node.js )。 我正在使用socket.io更新客户端上的当前上传文件进度。 我的问题是,我目前正在向每个客户端发送进度更新。 例如,如果我用clientA开始上传,然后用clientB连接到网站,clientB将看到与clientA完全相同的进度条。 通常情况下, clientA和clientB应该是不同的,各自的进度条只与它们各自的上传链接。 这是我的app.js文件 // Required modules var formidable = require('formidable'), http = require('http'), util = require('util'), fs = require('fs-extra'); // Path to save file, server side var savePath = "./uploadedFiles/"; // Loading index.html var server = http.createServer(function(req, res) { // Form uploading Process code //Upload route if (req.url == […]

如何判断POST请求是否包含要在Sails.js中上传的文件?

我使用sails.js创build后端,并支持在我的控制器方法之一中同时发布文本和上传文件/图像。 由于业务逻辑,我需要告诉如果这个控制器方法的POST请求包含file upload或不。 要上传文件,我使用sails.js中的内置Skipper 模块 ,并使用req参数中的file字段。 例如,如果我需要上载图像,则将请求中的images字段放在后端/ sails.js中: req.file('images').Upload({…}); 我试图使用req.file('images')来检查传入的请求是否包含要上传的文件,但它不起作用 – 没有上传文件的请求仍然给出req.file('images') = true : if (!!req.file('images')) { // this turns out to be true regardless of uploading file or not return uploadToS3(req, 'images'); } sails.log.info('creating entity without uploading file'); return createEntityWithoutImage(req.params.all()); 任何想法如何判断一个POST请求包含file upload?

通过GAE托pipe的node.js express服务器上传大文件

我需要通过我在Google App Engine中托pipe的节点服务器上传大型文件(超过300 MB)。 我能够使用xhr.upload上传文件,并且在本地工作正常,但是在GAE中,我得到了413 – 请求实体太大了 ,GAE似乎对内容大小有32MB的限制。 在探索的过程中,我遇到了谷歌BlobStore API,但似乎并不支持NodeJS。 你们可以请build议我哪个是最好的方法呢? 提前致谢。

formidable.parse方法不执行,nodejs和强大的包

问题:节点包“formidable”中的.parse()方法不想执行。 Reasources:这个网站上的代码片段是我用作参考,如果有帮助: https : //github.com/felixge/node-formidable 描述:我正在尝试创build一个网站,可以上传和存储一个带有nodejs文件的服务器端代码。 我正在实现这个使用httpdispatcher包引导用户,并强大的包处理上传表单。 我遇到一个问题,每次我的程序都按照预期执行,直到强大的包方法parsing(),然后停止任何操作。 浏览器选项卡试图重新加载,并且在差不多5分钟后,显示“服务器没有发回任何东西”的错误。 我没有收到来自节点的错误。 显然,这个代码只把处理过的表单数据发回给用户。 我只是把它简化到我认为合理的地步。 代码:nodejs,(server.js文件): var http = require('http'); console.log('http loaded'); var fs = require('fs'); console.log('fs loaded'); var dispatcher = require('httpdispatcher'); console.log('dispatcher loaded'); var formidable = require('formidable'); console.log('formidable loaded'); var util = require('util'); console.log('util loaded'); dispatcher.setStaticDirname('.'); dispatcher.setStatic('resources'); dispatcher.onGet('/main', function(request, response){ response.writeHead(200, {'Content-Type': 'text/html'}); fs.readFile('index.html', function(error, html){ response.end(html); […]