gpt4 book ai didi

node.js - 无法使用 Node.js 和 Heroku 将文件上传到文件夹中

转载 作者:搜寻专家 更新时间:2023-11-01 00:37:40 24 4
gpt4 key购买 nike

上传文件时遇到问题。我正在尝试使用 Node.js 将文件上传到文件夹中,我的应用程序部署在 Heroku 中。我在下面提供我的代码。

var multer  = require('multer')
var storage =multer.diskStorage({
destination: function (req, file, callback) {
callback(null, './uploads');
},
filename: function (req, file, callback) {
callback(null, Date.now()+'-'+file.originalname);
}
});
var upload = multer({ storage : storage });
app.post('/api/users/save-card-file',upload.single('file'), function (req, res, next) {
var data={'filename':res.req.file.filename};
res.send(data);
})

在这里,我尝试将文件上传到 uploads 文件夹,它在 localhost 中运行时工作正常,但我正在将我的应用程序上传到 Heroku,响应即将到来,但是没有文件上传到 uploads 文件夹。在 Heroku 上上传文件后,我收到以下响应。

{
"filename": "1503419364442-btechmarksheet.jpg"
}

但是 uploads 文件夹中没有文件。它是 localhost 中的工作文件,但在 Heroku 中我遇到了此类问题。

最佳答案

来自 https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem :

Each dyno gets its own ephemeral filesystem, with a fresh copy of the most recently deployed code. During the dyno’s lifetime its running processes can use the filesystem as a temporary scratchpad, but no files that are written are visible to processes in any other dyno and any files written will be discarded the moment the dyno is stopped or restarted. For example, this occurs any time a dyno is replaced due to application deployment and approximately once a day as part of normal dyno management.

Heroku 的文件系统不能用作持久文件系统。 Dyno 在后续请求之间的空闲时间后重新启动,重新初始化文件系统,这就是即使上传成功,您稍后也无法找到文件的原因。

关于node.js - 无法使用 Node.js 和 Heroku 将文件上传到文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45822891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com