Загрузить изображение на сервер nodejs с помощью модификации android, файл не определен - PullRequest
0 голосов
/ 03 августа 2020

Я использую 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

Есть ли какие-либо проблемы с обеих сторон? Это отлично работает в почтальоне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...