Tag: file upload

重复的http post请求被延迟

我试图通过发布请求上传一个.zip文件(〜180KB)作为八位字节stream。 以下代码按预期执行2-3次。 文件被上传,我得到了预期的回应。 但是,当第三次/第四次发布数据时,请求不会在上传服务器上显示一分钟左右。 当我等一会儿,我可以正常执行2-3次的请求,然后再次延迟。 两个服务器都运行在本地主机(OS X)上的节点(v0.10.31)+ express。 var options = { host : interface.host, port : interface.port, path : interface.path + '/deployResources', method : 'POST', headers : { 'Content-Type': 'application/octet-stream', 'Content-Length': byteLength, 'Content-disposition': 'attachment; filename=resources.zip' } }; var stream = fs.createReadStream(zipPath); var req = http.request(options, function (res) { // Response delayed on 3rd/4th run […]

multer nodejs模块onFileUploadStart file.size返回0

我正在创build一个应用程序,它接收来自node.js中几个客户端的文件。 为此,我使用快递multer节点模块。 在下面的代码中,我处理file upload: app.use(multer({ dest: './uploads/', rename: function (fieldname, filename){ return filename; }, onFileUploadStart: function(file){ console.log("file size: " + file.size); console.log(file.originalname + ' is starting…'); }, onFileUploadComplete: function(file){ console.log(file.fieldname + ' uploaded to ' + file.path); done = true; }, onFileUploadData: function(file, data){ //console.log("data being received " + data); } })); 但是当我在onFileUploadStart里面input时, file.size是0。 一个multer文件对象是具有以下属性的JSON对象,所以我知道size属性存在。 […]

为什么我可以使用绝对path而不是相对的方式将带有Formidable的file upload到文件夹?

和其他许多新手一样,我正沿着Manuel Kiessling的“The Node Beginner Book”继续学习。 我们应该通过Formidable模块来启动图像上传,不断地将图像重命名为“test.png”并显示。 本书使用path/tmp/test.png ,一切工作正常。 但是这不是一个相对path,我的图像实际上保存在Linux的tmp文件夹中! 我在我的项目中创build了文件夹“tmp”,并试图使相同的事情发生在那里,但我只显示一个错误! ENOENT, open './tmp/test.png' 当我尝试pathtmp/test.png时,同样的事情发生,但有趣的部分是,当我把一个实际的图像直接放入tmp文件夹并将其显示在我的页面上时,这两个path都起作用。 所以没有语义/语法错误,或..? 我的requestHandler.js,其中重要的部分是上传和显示function: var querystring = require("querystring"), fs = require("fs"), formidable = require("formidable"); function start(response) { console.log("Request handler 'start' was called."); var body = '<html>' + '<head>' + '<meta http-equiv="Content-Type" content="text/html; ' + 'charset=UTF-8" />' + '</head>' + '<body>' + '<form action="/upload" […]

平均堆栈:如何绑定上传到mongoose模型?

我在我的MEAN应用程序(它的一个项目控制面板)中玩上传表单。 我使用这个教程来实现一个工作上传: http : //markdawson.tumblr.com/post/18359176420/asynchronous-file-uploading-using-express-and 有了这个我可以上传文件 – 他们出现在我的上传文件夹。 现在我想实现,上传链接到用户所做的项目。 例如:Jon Doe已经login,他上传了一张照片。 现在我想呈现他的个人资料页面。 我查询了我的项目模型Jon Doe – >现在我想要他上传的媒体文件。 那么,我怎么把我的媒体发布到Jon Doe的projectSchema ? 之后,在Angular中展示所有媒体的最佳方式是什么? – – – 编辑 – – – 我一直试着用扩展器,我几乎设法使GET和POST的上传工作。 问题是,我不能从数据库中获取任何数据。 我的控制台给了我一个GET /uploads/media/[object%20Object] 304 。 目标是:编写project_id ,将文件写入mediaSchema。 所以当我打开一个项目时,我会得到所有与本项目的project_id匹配的媒体。 我更新了我的代码: HTML表单 <form id="uploadForm" enctype="multipart/form-data" action="/uploads/" method="post"> <label for="project_id">Ihre Projekt ID</label> <input type="text" name="project_id" value="{{projects._id}}" readonly> <input type="file" name="userPhoto"/> […]

Android向节点服务器请求stream的奇怪问题

让我解释一下,我们有节点服务器来处理所有服务器相​​关的任务,我们的客户端是web应用程序和android应用程序。 在服务器端,我们使用multer模块来处理多部分数据和JSZip模块来读写Zip文件。 当浏览器上传任何zip文件,然后multer处理它,并将其存储在tmp文件夹,然后使用JSZip模块,我们可以很容易地读出和处理数据。 但同样的过程是遵循Android应用程序然后JSZip模块忽略阅读压缩文件。 这是奇怪的行为。 即使相同的文件很容易上传的Web客户端,但忽略它,当它将上传的Android客户端。 上传每个客户端后,通过unzip -t upload-file命令检查(完整性testing)zip文件。 我发现警告 警告[file-name.zip]:在开头或zipfile中多出2个字节 从Android应用程序客户端上传时。 任何人都可以帮我解释一下在android中请求处理出了什么问题? (我没有太多的想法从Android多部分数据上传)

在node.js中发送带有图片附件的电子邮件

目前,我可以使用代码沿着以下方向发送node.js中的电子邮件: var nodemailer = require("nodemailer"); var smtpTransport = nodemailer.createTransport("SMTP",{ service: "Gmail", auth: { user: "gmail.user@gmail.com", pass: "gmailpass" } }); smtpTransport.sendMail({ from: "My Name <me@example.com>", // sender address to: "Your Name <you@example.com>", // comma separated list of receivers subject: "Hello ✔", // Subject line text: "Hello world ✔" // plaintext body }, function(error, response){ if(error){ console.log(error); […]

如何处理Node.js中的中断file upload

当访问者在file upload到我的Node.js服务器时按下STOP,REFRESH或BACK或简单地closures浏览器时,就会出现问题。 将有一些垃圾文件留在服务器中。 为了解决这个问题,我试着将上传的文件保存到一个临时目录,并在下次访问者再次上传时删除这些文件。 但是,显然Node.js会locking上次上传的文件,从而阻止它被删除。 当我停止Node.js服务器时,文件locking将被释放,最终将被删除。 如何在不重新启动服务器的情况下删除垃圾文件? 我正在使用公务员包。

在node.js中添加逻辑/validation到multer(快速)

在file upload期间,我想validation文件的大小,确保上传的文件是一个实际的图像,最后但并非最不重要的是validation标题已被写入图像。 但是这个代码不起作用。 我该怎么办? var multer = require('multer'), upload = multer({ dest: 'uploads/', onFileUploadStart: function(file, req, res){ if(file.size > 1000000) { res.send("Maximum picture size is 1 MB"); return false; } if(req.body.postname === ''){ res.send("Enter a title name for your post"); return false; } if(file.mimetype !== 'image/png' && file.mimetype !== 'image/jpg' && file.mimetype !== 'image/jpeg'){ res.send("Supported […]

使用node.js上传文件后,将文件从临时文件夹移动到当前文件夹

下面的node.js服务器代码允许客户端将file upload到临时位置。 var restify = require('restify'); var server = restify.createServer(); server.use(restify.bodyParser()); server.post('/fileupload', function(req, res, next){ var path_temp = req.files.file.path; console.log(path_temp); res.end('upload'); next(); }); server.listen(8000); 上传的文件存储在文件夹位置path_temp 。 如何将这个文件复制到正在运行的node.js脚本的当前文件夹?

multer将无法识别带有PUT的文件

所以我只是安装了节点,并用express来启动一个小型的HTTP服务器。 我试图上传文件与multer和HTTP PUT但它似乎作为无法处理PUTTING文件。 用POST做同样的事情工作得很好。 这是我的main.js : var express = require('express'); var multer = require('multer'); var storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, './uploads') }, filename: function (req, file, cb) { cb(null, file.originalname) } }); var upload = multer({ storage: storage }); var app = express(); app.get('/', function (req, res) { res.send('Up and […]