【发布时间】:2020-09-11 16:58:34
【问题描述】:
我正在尝试删除在uploads folder 中创建和存储的文件对象。
这是我的 multer 配置选项:
const path = require('path')
multerConfigOpt = {
dest: 'uploads/',
fileFilter: function(req, file, cb) {
var ext = path.extname(file.originalname)
console.log(ext);
if (ext === '.pdf' || ext === '.doc' || ext === '.docx' || ext === '.txt') {
console.log("true!");
cb(null,true)
} else {
cb(null, false)
}
}
}
module.exports = multerConfigOpt
处理用户通过 HTML 表单提交的文件后,我想将其删除。当我尝试执行以下操作时:
await fs.unlink(this.file.path, (err) => {
if (err) {
console.log(err);
}
})
但是我收到以下错误:
Error: EPERM: operation not permitted,
这些存储在上传文件夹中的文件没有扩展名。我相信它们只是 multer 创建的二进制文件。
以下是上传文件夹路径中的文件示例。
我对文件所做的只是使用 nodemailer 通过电子邮件将其作为附件发送
if (this.file && this.isJobSeeker) {
mailOptions.attachments = [{
filename: 'resume.pdf',
content: fs.createReadStream(this.file.path)
}]
}
如何删除这些文件?
感谢您的帮助。
【问题讨论】:
-
“处理”您的文件是否会导致将文件读入内存?
-
@AnujPancholi 我已经更新了我之前的问题,以展示我如何处理处理
-
你能检查一下
this.file.path是什么吗?看起来像文件夹而不是文件。因此出现EPERM错误。或者fs.unlink找不到这个文件。 -
我想你可以在这个链接上找到解决方案stackoverflow.com/a/63895045/12761193