首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在连接多方中设置上传文件的名称?

如何在连接多方中设置上传文件的名称?
EN

Stack Overflow用户
提问于 2017-01-04 12:36:41
回答 2查看 2.8K关注 0票数 8

我有一个页面,我想接受一个文件和3-4个用户的输入,我能够使用connect-multiparty middle-ware实现这一点,但上传文件的名称是一些胡言乱语与正确的扩展名和上传的文件内容太正确。

我想实现以下的目标

  1. 正在上载的文件的设置名称
  2. 如果目标目录中存在同名文件,则创建具有不同名称的文件副本。
  3. 设置文件大小和限制类型的最大限制。

我在网上搜索,但找不到任何有用的例子。我的完整代码如下

代码语言:javascript
复制
var express = require('express');
var router = express.Router();
var fs = require('fs');
var multiparty = require('connect-multiparty');
var multipartyMiddleware = multiparty({
    uploadDir : '../public/uploads'
});

router.post('/api/user/uploads', multipartyMiddleware, function(req, res) {

    var file = req.files.file;
    console.log(file.name);
    console.log(file.type);
    console.log(file);
    console.log(req.body.test);

    console.log("The file was saved!");
    res.json({
        success : 1
    });
    return;

});

module.exports = router;
EN

回答 2

Stack Overflow用户

发布于 2018-05-03 17:03:15

在使用fs.rename()复制文件后,您必须重命名该文件,或者修改node_modules中多方的源代码。在他们的代码中,他们有一个函数来重命名:

代码语言:javascript
复制
function uploadPath(baseDir, filename) {
  var ext = path.extname(filename).replace(FILE_EXT_RE, '$1');
  var name = randoString(18) + ext;
  return path.join(baseDir, name);
}

我对他们的代码做了一些修改,这样我就可以像multer那样使用它了:

https://gist.github.com/Edudjr/999c80df952458cc583272a5161b4d08

你会像这样使用它:

代码语言:javascript
复制
var EXT_RE = /(\.[_\-a-zA-Z0-9]{0,16}).*/g;
var options = {
    uploadDir : path.join(__dirname,'../public/images'),
    filename: function(filename, callback){
     var name = filename.replace(EXT_RE, "");
     callback(name+'-YEAH.png');
   }
}
var form = new multiparty.Form(options);

他们强烈建议您保存临时文件夹中的文件,以防止服务器上的DoS。

https://github.com/pillarjs/multiparty/issues/64

票数 0
EN

Stack Overflow用户

发布于 2019-12-23 11:44:52

您可以很容易地访问它,我用它来获取文件名。

代码语言:javascript
复制
 console.log(req.files.uploads.path.split('\\')[1]);

我使用的是从角度上传。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41464011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档