在multer中重命名上传的文件

时间:2016-03-25 04:23:12

标签: javascript node.js multer

此处我尝试将这两个文件重命名为 file1 file2 ,但这两个文件都重命名为 file2

HTML

<input type="file" name="file1" file-model = "file1"/>
<input type="file" name="file2" file-model = "file2"/>
<button ng-click = "uploadFile()">UPLOAD FILES</button>

服务器

app.use(multer({
    dest: 'uploads/',
    rename: function(file2, file2) {
        return "file1"
    },
    rename: function(file2, file2) {
        return "file2"
    }

}));

当我返回 return file1+"file1" return file2+"file2" 时,文件会重命名为 originalnamefile1 originalnamefile2 。 尝试了一些事情,但无法做到正确。我的nulter版本是0.1.6

1 个答案:

答案 0 :(得分:1)

拥有多个rename func没有任何意义,最后将永远覆盖以前的。看看下面的示例

app.use(multer({
    dest: 'uploads/',
    rename: function(fieldname, filename) {
        //check fieldname
        if(fieldname === 'file1') {
            //be aware, no file extension added here
            //if you want to add ext - use
            //return 'file1.' + filename.split('.').pop();
            return 'file1';
        } else if (fieldname === 'file2') {
            return 'file2';
        //do something when fieldname is different
        } else {
            //generate some id
            return Math.round(Math.random() * 1000);
        }
    }
}));