gpt4 book ai didi

node.js - 如何上传文件到服务器(Node.js)

转载 作者:太空宇宙 更新时间:2023-11-03 22:23:48 24 4
gpt4 key购买 nike

不上传照片到服务器,如何解决这个问题?在 index.ejs 页面上,应根据添加的条目生成一个照片库。该条目包含一张照片。条目已添加,但照片未加载。 project (GitHub)应用程序/routes.js:

var upload = multer({
storage: storage,
limits: {fileSize: 7},
fileFilter: function (req, file, cd) {
checkFileType(file, cd);
}
}).single('filePhoto');
function checkFiletType(file, cd) {
const fileTypes = /jpeg|jpg/;
const extname = fileTypes.test(path.extname(file.originalname).toLowerCase());
const mimetype = fileTypes.test(file.mimetype);

if (extname && mimetype) {
return cd(null, true);
} else {
cd('Error: only JPEG or JPG!')
}

var Photo = require('../app/models/photo');

module.exports = function (app, passport) {
app.get('/', function (req, res,next) {
Photo.find({}, function (error, photos) {
var photoList = '';
res.render('index.ejs', {photoList: photos});
});
});
}
app.post('/addPhoto', function (req, res, next) {
next();
}, function (req, res) {
var newPhoto = new Photo(req.body);
newPhoto.save().then(function (response) {
console.log('here', response);
res.status(200).json({code: 200, message: 'OK'});
}).catch(function (error) {
console.error('new photo error', error);
});
},function (req, res) {
Photo.find({}, function (error, photos) {
res.send('index.ejs', {
photoList: photos
});
});
});
};

最佳答案

您需要将您的 upload var 作为中间件传递到您的上传路由。

这是我之前的做法的一个片段:

// Route:

const storage = multer.memoryStorage()
const upload = multer({ storage: storage })

router.post('/upload', upload.single('photo'), ImageController.upload);


// Image Controller:

upload(req, res){

console.log("file", req.file)

}

当我发布图像时,我确保将其命名为 photo 以匹配我在 multer 中间件中使用的关键字:

所以我像这样创建表单数据:

const formData = new FormData()
formData.append('photo', {
uri: data.uri,
type: 'image/jpeg',
});

axios.post(`${SERVER}/images/upload`,
formData: formData,
{ headers: {
'Content-Type': 'multipart/form-data'
}
})
.then(response => console.log("response", response))
.catch(err => console.log('err', err))

关于node.js - 如何上传文件到服务器(Node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49875289/

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