am not able to upload image from react native to nodejs server even i can upload image from postman,

Viewed 112

am using "react-native-image-picker": "^3.2.1", to get images from the library am getting it, but am not able to upload it to nodejs server using multer although I can upload an image from postman it means it should work fine here is my react native code

 this.setState({ uri: response.uri });
                const bodyToBe = new FormData({ maxDataSize: 20971520 });
                bodyToBe.append('photo', {
                    type: response.type,
                    uri: response.uri,
                    name:  response.fileName
                })
                fetch('http://192.168.10.6:5000/api/open/upload-any-image', {
                    headers: {
                        Authorization: `Bearer ${this.props.user.userToken}`,
                        'Accept': 'multipart/form-data',
                        'Content-Type': 'multipart/form-data',
                    },
                    method: 'POST',
                    body: bodyToBe
                })
                    .then(response => {
                        console.log(response, "this is response");
                        response.json().then(res => console.log(res, "its is")).catch(err => console.log(err, "here you go"));
                    })
                    .catch(e => {
                        console.log(e.toString(), "error")
                    });

and server-side multer config is

'use strict;

const multer = require('multer');

const storage = multer.diskStorage({
    destination: function (req, file, cb) {
        cb(null, './uploads');
    },
    filename: function (req, file, cb) {
        cb(null, Date.now() + file.originalname);
    }
});

const fileFilter = (req, file, cb) => {
    // reject a file
    if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
        return cb(null, true);
    } else {
        return cb(null, false);
    }
};

const upload = multer({
    storage: storage,
    limits: {
        fileSize: 1024 * 1024 * 25
    },
    fileFilter: fileFilter
});

module.exports = upload;

and the express route is

  console.log("request =>" ,req.files)
  return openService
    .uploadImage(req.body, req.files, req.user)
    .then((data) => {
      res.send(RS.successMessage(data))
    })
    .catch((err) => next(err));
});

Thanks in advance for helping.

0 Answers
Related