javascript - 如何在 Node Js 中上传期间更改目录并重命名文件?

标签 javascript html node.js express multer

我正在使用 multer 和 fs 上传图像文件 我如何更改上传文件的目录,因为所有文件都存储在我的“routes”文件夹中,而不是 multer 创建的“uploads” 另外,如何更改名称文件示例:

username.jpg

这是我的代码:

var upload = multer({ dest: '/tmp' });

router.post('/file_upload', upload.single("file"), function (req, res) {
    var file = __dirname + "/" + req.file.originalname;
    fs.readFile(req.file.path, function (err, data) {
        fs.writeFile(file, data, function (err) {
            if (err) {
                console.log(err);
            } else {
                res.redirect("back");
            }

        });
    });
})

在客户端:

<html>

    <head>
        <title>File Uploading Form</title>
    </head>

    <body>
        <h3>File Upload:</h3>
        Select a file to upload:
        <br />
        <form action="/file_upload" method="POST" enctype="multipart/form-
    data">
            <input type="file" name="file" />
            <input type="submit" value="Upload File" />
        </form>
    </body>

</html>

最佳答案

除非您需要将上传的文件保留在其原始上传位置,否则我会按如下方式进行:

var upload = multer({ dest: '/tmp' });

router.post('/file_upload', upload.single('file'), function (req, res) {
    // Here change 'uploads' to the folder name you prefer.
    // Also change req.file.originalname for your preferred file name
    var file = path.join(__dirname, 'uploads', req.file.originalname)
    fs.rename(req.file.path, file, function (err) {
        if (err) {
            console.log(err);
        } else {
            res.redirect("back")
        }

    })
})

关于javascript - 如何在 Node Js 中上传期间更改目录并重命名文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48718686/

相关文章:

javascript - Axios POST 的发送状态和数据未显示在 req.body 中

javascript - 如何确定选择已被清除

javascript - 如果{{permission}}禁用href链接点击

node.js - 范围/角色声明在客户端凭据访问 token 中不可用

javascript - 将 HTML 转换为 PDF 分页

javascript - 取消 getUserMedia 请求

javascript - 在 d3.js 中的 STACKED GROUP 条形图上创建标签

javascript - 使用带有一些自定义函数的 jquery 验证名称

javascript - Jquery,如果ID包含字母 'X'

angularjs - jmeter 返回未定义的输出