我在服务器上上传文件时出错,如果我可以提供帮助
这是一个从客户端获取文件并将其保存到上传文件夹的命令
exports.adminSendFile = (req, res) => {
if (req.files === null) {
return res.status(400).json({ msg: 'No file uploaded' });
}
const file = req.files.file;
file.mv(`${__dirname}/SERVER/Servises/uploads/${file.name}`, err => {
console.log("****HERE*****");
if (err) {
console.error(err);
return res.status(500).send(err)
}
res.json({
fileName: file.name,
filePath: `/SERVER/Servises/uploads/${file.name}`
})
console.log(req.body),
vacations.create({
description: req.body.description,
destination: req.body.destination,
createdAt: req.body.createdAt,
updatedAt: req.body.updatedAt,
img: req.body.filePath,
price: req.body.price,
})
})
您可以在此处看到错误
{ [Error: ENOENT: no such file or directory, open 'C:\Users\Itzik\Desktop\לימודים\projact3\server\Servises\controller\SERVER\Servises\uploads\My Passport Photo.jpg']
errno: -4058,
code: 'ENOENT',
syscall: 'open',
path:
'C:\\Users\\Itzik\\Desktop\\לימודים\\projact3\\server\\Servises\\controller\\SERVER\\Servises\\uploads\\My Passport Photo.jpg' }
POST /users/admin/upload 500 40.394 ms - 189
最佳答案
__dirname
是最常用的方法。 它为您提供当前运行文件的路径。
根据您的错误,我认为您尝试获取的路径是这样的:
C:\Users\Itzik\Desktop\לימודים\projact3\server\Servises\uploads\My Passport Photo.jpg'
而不是:
C:\Users\Itzik\Desktop\לימודים\projact3\server\Servises\controller\SERVER\Servises\uploads\My Passport Photo.jpg'
您需要使用 ../
从当前目录向上一级,然后就可以开始了,如下所示:
file.mv(`${__dirname}/../uploads/${file.name}`
关于node.js - 使用express-fileUpload上传文件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57760692/