Articles of file upload

Node.js TypeError:无法读取未定义的属性“文件”

我只是在学习node.js,并且使用express和multer很难做一个简单的file upload。 这里是表格: 上传图片 在我的configure.js我有: app.use(express.static(path.join(__dirname, 'public'))); app.use(multer({dest:'../public/upload/temp'}).single('file')); 和image.js控制器: create: function(req, res) { var saveImage = function() { console.log(req.body); var possible = 'abcdefghijklmnopqrstuvwxyz0123456789', imgUrl = ''; for(var i=0; i < 6; i+=1) { imgUrl += possible.charAt(Math.floor(Math.random() * possible.length)); } var tempPath = req.files.file.path, //<line 55 error ext = path.extname(req.files.file.name).toLowerCase(), targetPath = path.resolve('./public/upload/' + imgUrl + […]

node.js – stream文件暂时不保存

所以这是我的设置 我有一个客户端从哪个file upload到node.js服务器(serverA),从那里我想stream文件到另一台服务器(serverB), 而不临时保存文件(在serverA上)。 什么是最简单和最好的方法来实现呢? 我能够上传文件到serverA,但我不希望临时文件被存储。 更新: 它是一个简单的ajaxfile upload到(severA)…这个想法是传输字节,即使连接断开,你可以从特定的字节读回来。 我在serverA上使用express.js,而backbone.js是使用我做ajax上传的客户端。 现在A和B之间没有连接,它们通过端点进行通信。 serverA在端口4000上运行,serverB在端口5000上运行。我想以某种方式将文件从serverA传输到serverB上的端点。

如何使用Express安全地上传Node中的文件?

在节点中有很多关于file upload的文章,教程和问题,但大部分是针对初学者的,并没有一个完全解释了如何保证file upload的生产。 我很努力地find一个完整的答案,但是没有成功。 以下是我的发现的解释。 限制上传的文件大小: app.use(express.limit('4mb')); 限制file upload到只有某些路线:我不能得到这个实际工作,但这里是我曾经试过: 更换: app.use(express.bodyParser()); 同 app.use(express.json()); app.use(express.urlencoded()); 并将多部分中间件添加到每个上载路由: app.post('/upload', express.multipart(), uploadController.uploadPhoto); 这部分不起作用,但如果我离开express.bodyParser() ,上传工作正常。 那么我做错了什么? 在保存上传到磁盘之前检查上传的文件types: 我无法弄清楚这一部分,但有一个build议是编写一个自定义中间件,使用强大的parsingfile upload,并试图调整文件的大小,然后保存(假设它是一个图像)使用图像魔术库。 build议这样做会使图像安全并确保它实际上是一个图像(因为如果图像不是图像,该过程将失败)。 这只会影响图像,所以它不是一个完整的解决scheme。 我怎样才能实现呢? 任何示例代码? 还有什么,我失踪上传是安全的?

expressjsfile upload,检查是否确实有文件发送,指定max filesize并保留其名称

到目前为止,大约一个月的时间和expressjs一起工作,我偶然发现了file upload的问题。 尽pipe咨询谷歌和各种博客,我没有find以下三个问题的答案: 我必须做什么/ bodyParser的设置,我必须select,以便: 确保确实上传了一个文件(目前,在没有select文件的情况下提交表单时会创build一个空文件)。 我可以在哪里指定文件允许的最大大小值? 我怎样才能省略文件的重命名? 目前我在我的express(v。3.0.0)应用程序中包含bodyParser,并带有以下选项: {keepExtensions: true, uploadDir: __dirname + '/public/uploads'}

NodeJS – 使用Core NodeJS和最初的Node解决scheme,通过进度条上传文件

Ryan Dahl曾经说过他发明了NodeJS来解决file upload进度条问题( https://youtu.be/SAc0vQCC6UQ )。 使用Node于2009年推出的技术时,所以在Express和更高级的客户端JavaScript库自动告诉你进度更新之前,NodeJS究竟是如何解决这个问题的呢? 现在试着只使用Core NodeJS,我理解了请求stream,我可以看看头文件,获得总文件大小,然后获取每个数据块的大小,告诉我完成百分比。 但是,我不明白如何将这些进度更新stream回到浏览器,因为浏览器似乎没有更新,直到request.end()。 我想再一次围绕NodeJS最初如何解决这个进度更新问题的问题进行讨论。 WebSocket还没有,所以你不能打开一个WebSocket连接到客户端,并将进度更新stream传回浏览器。 有没有使用另一个客户端JavaScript技术? 这是我迄今的尝试。 进度更新stream式传输到服务器端控制台,但浏览器仅在响应stream收到response.end()后才更新。 var http = require('http'); var fs = require('fs'); var server = http.createServer(function(request, response){ response.writeHead(200); if(request.method === 'GET'){ fs.createReadStream('filechooser.html').pipe(response); } else if(request.method === 'POST'){ var outputFile = fs.createWriteStream('output'); var total = request.headers['content-length']; var progress = 0; request.on('data', function(chunk){ progress += chunk.length; var […]

使用XMLHttpRequest将多个file upload到Express.js 3.5服务器

我正在尝试在JavaScript中使用原生FileAPI构buildfile upload器,并且我想通过XMLHttpRequest(不带jQuery)将file upload到使用Express.js的Node.js服务器。 文件阅读部分工作正常,当我上传文件没有XMLHttpRequest它完美的作品(文件在Express.js req.files )。 问题是通过AJAX上传: req.files总是空的。 下面是一些代码: 表格: <form action="http://localhost:3000/upload" method="POST" enctype="multipart/form-data" name="form"> <input type="file" name="uploads" id="files" multiple="multiple"> <input type="submit" name="submit" value="submit"> </form> 前端的上传部分(在文件[0] .data中是一个文件 – 不是一个数组或东西): function uploadFiles(files) { var xhr = new XMLHttpRequest(); xhr.submittedData = files; // Array of objects with files included. But it neither works with an array of […]

如何使用nodejs / express来上传和读取文件

有各种各样的post,但我仍然没有得到它。 我想上传* .csv并阅读并处理其内容。 我的玉文件就是这个 //views/import.jade extends layout block content h1= title form(action="/import", method="post", enctype="multipart/form-data") input(type="file", name="ufile") input(type="submit", name="Upload") – 我改变了代码,但是req.files是未定义的 //routes/index.js /* import page. */ router.get('/blah', function(req, res, next) { res.render('import', { title: 'Import Data' }); }); router.post('/import', function(req, res) { console.log(req.files); }); module.exports = router;

从iOS应用程序通过node.js将图像上传到服务器

我正在开发一个iOS应用程序,我正在使用node.js服务器端脚本。 我面临从iOS应用程序上传图像到服务器的问题。 如果我从网页forms上传图像,它工作正常。 但是,如果从应用程序上传它不起作用。 //test file h3 Pic Upload form(action='/pic_upload', method='post',enctype='multipart/form-data') | user_pic: input(type='file', name='user_pic') input(type='submit') //app.js var userlogin =require('./routes/userlogin'); app.post('/pic_upload', userlogin.picUpload); //userlogin.js //picUpload function exports.picUpload = function(req, res) { console.log(req.files); // showing undefined, when called from IOS app // pic upload script… }); 我曾尝试从应用程序端发送图像作为数据或文件参数,但它没有工作。 如何从应用程序端发送文件参数,以便我可以轻松地将图像上传到服务器? 请提出解决问题的方法。

如何将项目Expressjs与jQuery-File-Upload整合?

jQuery-File-Upload与Nodejs很好地协作,但我发现很难与Expressjs集成。 有什么build议么? 感谢您的关注。 PD: https : //github.com/blueimp/jQuery-File-Upload

如何在nodejs中为上传的文件生成简短的唯一名称?

我需要通过简短的唯一标识符来命名上传的文件,如nYrnfYEv a4vhAoFG hwX6aOr7 。 我怎样才能确保文件的唯一性?