使用multer在node.js(express)中上传后保留图像文件名和扩展名

穆拉德·埃布迪(Murad Elboudy)

<!doctype html>
<html>

    <body>
        <form action="/upload" method="POST" enctype="multipart/form-data">
            <input type='file' name="image">
            <br>
            <input type="submit" value="submit">
        </form>
   </body>

</html>

var express = require('express');
var router = express.Router();
var multer  = require('multer');
var upload = multer({ dest: 'uploads/',
    filename: function (req, file, cb) {
    cb(null, file.fieldname + '-' + Date.now())
} });

router.post('/upload', upload.single('image'), function(req, res){
    res.send("Uploaded");
});
module.exports = router;

我有使用multer模块上传图像的基本代码。但是,文件上传后会生成一些随机名称,甚至会删除文件扩展名。它只是说“文件”。因此,如何保留带有扩展名的图像名称。

克尔兹斯托夫·斯托姆普卡

当您上传文件(使用multer.single方法)时,您会在

req.file

它是具有属性originalname,mimetype,path和其他属性的对象。检查所有文档:https : //github.com/expressjs/multer

但不要相信模仿。

如何保留图片名称和扩展名?

a)使用req.file中的数据重命名上传的文件(不要喜欢)

b)在db中存储文件数据(req.file)

编辑重命名:当所有下载的文件都进入一个目录,并且将名称更改为原始名称时,可能会发生冲突-可能存在具有相同名称的文件。因此,当您选择这种方式时,应该将文件移动到单独的目录中。

下一件事:原始文件名可能包含侮辱性单词或非标准字符(我不知道这是否可能是安全问题)或过长等。

好的,如何重命名?我们可以使用快递包fs https://nodejs.org/api/fs.html和方法:

fs.rename(oldPath, newPath, callback)

要么

fs.renameSync(oldPath, newPath)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

nodejs multer图像上传:保留文件名和扩展名

multer:保留原始图像文件名

使用Multer在Node.js中上传多个图像

如何使用multer和node js在不检查文件扩展名的情况下确定文件的真实类型

Laravel 8:使用原始文件名和扩展名上传文件

使用multer和nodejs返回上传文件的文件名

无法使用Express和multer运行node.js服务器以在节点中上传文件

在Express JS中使用Multer基于扩展名过滤文件

使用Angular,Node,Express,Multer的图像上传问题

在node + express中使用文件上传模块multer

如何使用node.js在multer中获取输入文件名

使用Node和Multer处理多个不同文件的上传

Node.js-无法通过Ajax使用multer上传文件

使用Multer处理Node.js中的文件上传

我使用 node js multer 遇到文件上传问题

文件未使用 Multer 在 Express JS 中上传

使用Windows批处理脚本(保留扩展名)更改文件名?

图片上传到我的文件夹中,没有扩展名,带有节点 js 和 multer

如何使用 Multer 在 MERN Stack 应用程序中上传图像文件

使用ImageMagick在扩展名不在文件名中时转换图像

使用文件名时,如果没有扩展名src =“”,则无法渲染图像

使用 wget 下载与文件名中的扩展名和特定文本匹配的文件

使用multer和node.js api随机上传文件

在Node.js中上传多个文件(不包含multer)?

使用图像文件文件夹从数据库过滤图像文件名后从服务器发送图像文件

使用grep和map查找扩展名为.png的文件名,但输出时不带扩展名

如果有人通过Node JS应用程序中的multer将扩展名从exe更改为png,则不应允许文件上传

在管理员中上传图片时,出现错误:不允许使用文件扩展名“ jpg”。允许的扩展名是:”

使用'find'返回不带扩展名的文件名