最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

multer的NodeJS文件上传,会发生什么情况的文件名是从2位相同

运维笔记admin16浏览0评论

multer的NodeJS文件上传,会发生什么情况的文件名是从2位相同

multer的NodeJS文件上传,会发生什么情况的文件名是从2位相同

这个概念还不清楚,我呢。对于一个非常基本的情况下,我可以上传一个文件(说MYFILE.TXT)使用multer,而在服务器端保留其原来的名称。

const upload = multer({ dest: `${UPLOAD_PATH}/` }); // multer configuration

现在,另一个人碰巧有相同的文件名MYFILE.TXT不同的文件上传到服务器端的同一个文件夹。它会覆盖前一个?

通常你如何管理呢?谢谢 !

回答如下:

它会覆盖前一个?

是的,它肯定会与新one.Here取而代之的是我的代码。在此代码,如果你从不同的地点或从它不会replaces.It保持相同的位置无论是在destination.Server代码server.js的文件使用相同的文件名

var express=require('express');
var multer=require('multer');
var path = require('path')
var app=express();
var ejs = require('ejs')
app.set('view engine', 'ejs')
var storage = multer.diskStorage({
    destination: function(req, file, callback) {
        callback(null, './public/uploads')
    },
    filename: function(req, file, callback) {
        callback(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname))
        //callback(null, file.originalname)
    }
})

app.get('/api/file',function(req,res){
res.render('index');
});
app.post('/api/file', function(req, res) {
    var upload = multer({
        storage: storage}).single('userFile');
    upload(req, res, function(err) {
        console.log("File uploaded");
        res.end('File is uploaded')
    })
})

app.listen(3000,function(){
console.log("working on port 3000");
});

如果您发现该代码callback(null, file.originalname)这条线将保持原来的文件名中的目的地,当它让你不想要这个,然后使用callback(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname)).This回调相同的名字。如果改变目标文件的名称将替换该文件。

做一个视图文件夹,并保持it.ejs代码文件,您可以从中选择要上传的文件index.ejs

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <form id="uploadForm" enctype="multipart/form-data" method="post">
        <input type="file" name="userFile" />
        <input type="submit" value="Upload File" name="submit">
    </form>
</body>
</html>

运行该代码为节点server.js.Open浏览器并输入http://localhost:3000/api/file.Choose要上传的文件,看看目标folder.Hope这可以帮助你。

发布评论

评论列表(0)

  1. 暂无评论