Tag: file upload

如何使用socket.io-stream上传文件?

这是我的源代码。 <server.js> var app = require('./app.js'); var socketIO = require('socket.io'); var ss = require('socket.io-stream'); var path = require('path'); var fs = require('fs'); var server = app.listen(53322, function() { console.log('server is working at port 53322'); }); var io = socketIO.listen(server); io.on('connection', function (socket) { ss(socket).on('file', function(stream, data) { console.log(data); var filename = path.basename(data.name); var filepath = […]

当应用程序在生产环境中运行时,在sails.js中上传后不会立即加载图像

我已经上传和存储在/资产/图像/path/到/图像的图像。 开发环境一切都很好。 但是当我在生产环境中运行我的应用程序时,首先出现上传后图片不能立即显示的问题。 但是可以通过帆升降机重新启动服务器后查看图像。 我search的解决scheme,并得到了想法复制相同的上传文件在/.tmp文件夹立即访问上传的图像。 所以我尝试这个解决scheme,并使用下面的代码来复制.tmp文件夹中的图像… var tempLocation = process.cwd()+ '/.tmp/public/images/custom/path/to/image'; fs.createReadStream(uploadLocation).pipe(fs.createWriteStream(tempLocation)); 但是,当我在.tmp中写入时出现错误 events.js:72 throw er; // Unhandled 'error' event ^ Error: ENOENT, open path/to/.tmp/folder; 我在全球和本地都安装了grunt。 所以不要认为这是一个问题。 请帮我解决这个问题。 谢谢

将文件从AngularJS上传到ExpressJS 4 API

我的AngularJS应用程序通过内部API与Express进行通信。 我在Angular中使用ng-file-upload来处理上传的文件。 上传代码看起来像这样: Upload.upload({ url: '/api/uploadCSV/', file: CSVfile }).progress(function (evt) { var progressPercentage = parseInt(100.0 * evt.loaded / evt.total); console.log('progress: ' + progressPercentage + '% ' + evt.config.file.name); }).success(function (data, status, headers, config) { console.log('file ' + config.file.name + 'uploaded. Response: ' + data); }).error(function (data, status, headers, config) { console.log('error status: ' + status); […]

Selenium Webdriver,Uploadify如何使用Node.js上传文件

uploadify,不存在一个input元素,所以不能使用sendKeys上传。 我已经find了如何使用Java上传文件:( 如何使用Selenium WebDriver处理Windowsfile upload? ) 我想知道如何使用Node.js上传文件?

在jQuery File Upload中上传所有文件时,如何在服务器端使用stop事件

我正在使用jQueryfile upload与jqueryfile upload中间件和mongoose与mongoDB express.js。 我想上传图片。 Galery对象包含一个Image对象的数组,如 var GalerySchema = new mongoose.Schema({ images: [ImageSchema] }) 在每个文件被asynchronous上传后,我想把它推到我的Galery对象的图像数组中。 我试图做下面的服务器端: // Is called everytime an image is uploaded upload.on('end', function(fileInfo, rew, res){ // Get the galery db.Galery.findOne({_id: req.fields.galery_id}, function(err, galery){ // Create new Image object instance var image = new db.Image({src: fileInfo.name}); // Save, in order to create auto […]

NodeJS Multipart / form-data与数组

我在使用enctype multipart/form-data和发送具有相同名称的input作为数组时遇到了一些麻烦。 我似乎只能得到一个上传的图像或arraysinput,但不能同时… 例如,我有这样的forms: <form method="post" action="/test"> <input name="testinput" value="valueA"> <input name="testinput" value="valueB"> <input type="file" name="fileattachment"> <input type="submit" value="Submit"> </form> 如果我将表单的enctype设置为multipart/form-data ,如下所示: <form method="post" action="/test" enctype="multipart/form-data"> 我最终在我的NodeJS应用程序中收到'fileattachment'就好了,但是我只获得'testinput'的最后一个值,就像这样: //req.body //— { testinput: 'valueB' // I'm missing valueA! } //req.files //— { fileattachment: { name: 'biglogo.png', data: <Buffer 89 … >, encoding: '7bit', mimetype: 'image/png', mv: [Function] […]

AWS S3标准上传schemevs基于浏览器的节点上传

我试图了解标准AWS S3上传scheme(例如使用aws-sdk)和基于浏览器的上传(特别是在node.js中)之间的实现差异。 我知道在任何情况下,都需要有一个服务器来存储我的AWS凭据并在S3上签名。 但是有一些我不明白的东西: 如果我使用基于浏览器的上传,我将在客户端使用HTML表单,并在隐藏字段中使用我的服务器获取的策略值。 但是,如果我使用标准scheme上传文件,即完全通过我的服务器,它究竟是如何实现的? 服务器端实现有很多代码示例,但客户端应该发生什么? 所以,会有一个HTML表单, action属性指向我的服务器的URL,指定用于file upload,对吧? 但是会发生什么呢? 将文件首先上传到我的服务器的存储,然后到S3? 或者它会以某种方式使用stream媒体或什么? 它真的让我困惑,我真的很感激一些代码示例,其中有服务器端和客户端代码。 这两个上传计划有什么优点和缺点? 我应该什么时候比另一种方式更倾向于一种方法(我的个人用例 – 用多帐户系统上传video)?

Express js:在rest api中处理callback

这是我想用其他API实现的。 1.用户上传文件到AWS s3(> 20Mb)。 function(req,res){ //initiate multipart upload.with asynchronous request s3.multipartUpload(function(err,success){ //when upload complete do step 2 }); res.send({ 'status':'pending', 'message':'Upload is added to queue ' }); } 2.成功上传后,用户需要添加更多关于上传文件的信息(加载下一页input一些元数据,这将启动另一个REST API)。 由于file upload是完全asynchronous的,我只能在file upload后才能加载元数据屏幕?

将内存中的文件从Node Express发送到API

我在Node和Express中有一个API,它接收来自客户端的一个文件(Postman正在开发中),我使用multer来获取内存中的文件,如下所示: router.post('/api/v1/upload', contrl.upload, contrl.uploadFile); 然后在我的控制器中: exports upload = multer({ storage: multer.memoryStorage() }).single('file'); 现在我可以用req.file.buffer访问文件,但是我想把这个文件发送到另一个API。 我正在使用request-promise-native所以这将是这样的: const rp = require('request-promise-native') exports.uploadFile = (req, res) => { const options = { method: 'POST', uri: `${uri}`, form: { file: req.file.buffer } } rp(options) .then(parsedBody => { return res.status(201).send(parsedBody); }) .catch(err => res.status(400).send(err)); } 为了简单起见,我删除了一些其他参数,但这不起作用,可能是因为Node不知道如何处理req.file.buffer中的信息。 编辑。 好的,经过一些testing,我试图使这个工作与一个真正的文件,而不是使用multer memoryStorage。 所以我得到这个: exports […]

如何控制node.js&express 3.0服务器上的file upload

正如你可以看到这里: https : //github.com/visionmedia/express/blob/master/examples/multipart/index.js默认快速支持file upload,并将每个上传的文件存储在临时文件夹供以后使用。 我的问题是: 安全吗? 正如我所看到的,攻击者可以使用垃圾文件填充所有临时文件夹,而无需对其进行任何控制。 我应该检查每个POST请求,并删除任何未使用的文件?