Я использую Nodejs сервер и Android для загрузки изображений.
Node js код
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, '../uploads');
},
filename: (req, file, cb) => {
console.log('file ',file);
cb(null, (Date.now() + path.extname(file.originalname)));
}
});
const fileFilter = (req, file, cb) => {
if (file.mimetype == 'image/jpeg' || file.mimetype == 'image/png') {
cb(null, true);
} else {
cb(null, false);
}
}
const upload = multer({ storage: storage, fileFilter: fileFilter });
app.post('/upload', upload.single('file'), (req, res, next) => {
const file = req.file // return undefined
if (!file) {
const error = new Error('Please upload a file')
error.httpStatusCode = 400
return next(error)
}
res.send(file)
})
Android код
File file = new File(compressedImagePath);
MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", file.getName(), RequestBody.create(MediaType.parse("image/*"), file));
Call<ImageUploadResponse> call = service.uploadImage(filePart);
Это возвращается неопределенным на сервере в следующей строке кода.
const file = req.file
Есть ли какие-либо проблемы с обеих сторон? Это отлично работает в почтальоне.