javascript - expressjs 文件上传,检查是否确实有文件发送,指定最大文件大小并保留其名称

标签 javascript node.js file-upload express

使用 expressjs 大约一个月了,我偶然发现了文件上传的问题。尽管咨询了 Google 和各种博客,但我未能找到以下三个问题的答案:

我必须做什么/我必须为 bodyParser 选择什么设置才能:

  1. 确保确实上传了一个文件(目前,在不选择文件的情况下提交表单时会创建一个空文件)。

  2. 我在哪里可以指定一个文件允许的最大大小的值?

  3. 如何省略文件的重命名?

目前,我在我的 express (v. 3.0.0) 应用程序中包含 bodyParser,并具有以下选项:

{keepExtensions: true, uploadDir: __dirname + '/public/uploads'}

最佳答案

我最近遇到了类似的问题。 对于问题 #2,检查 http://www.senchalabs.org/connect/middleware-limit.html

app.use(express.limit('4M'));//在你的 app.configure() 中

app.post('/upload', function(req, res) {
    var fs = require('fs'),
        file = req.files.myfile; //your file field;


    if(file.size === 0) { // question #1
        fs.unlinkSync(file.path);
        res.redirect('/error?');
    } else { //question #3
        var fn = file.path.split('/');
        fs.rename(file.path, file.path.replace(fn[fn.length-1], file.name));
        res.redirect('/success?');
    }
});

关于javascript - expressjs 文件上传,检查是否确实有文件发送,指定最大文件大小并保留其名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11799033/

相关文章:

javascript - 如何将 Validate.js 与 Vue.js 结合使用

javascript - KnockoutJS 仅在字段部分完整时验证

node.js - 并行多次调用 lambda 似乎是在 50 个并发批处理中执行,而不是使用更高指定的保留并发数

c# - 在 C# 中解析和上传 >1GB 的数据

java - Vaadin Upload组件如何在submitUpload之前获取fileName?

javascript - Angular 中的全局变量

JavaScript .map() 语法错误

javascript - 使用 require 在 JavaScript 中访问匿名函数之外的全局变量

javascript - Node - 尝试通过 CLI 键入 node server.js 来运行文件 "server.js",但它显示消息为“找不到模块”

http - HTTP 上传有很多开销吗?