Реагируйте на загрузку собственного изображения Spring boot - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь загрузить изображение из реагирующего нативного приложения на сервер загрузки Java, но не могу заставить его работать.

Запрос в консоли chrome из приложения:

userimage FormData {_parts: Array(1)}_parts: Array(1)0: Array(2)0: "photo"1: name: "file_photo"uri: "content://com.google.android.apps.photos.contentprovider/-1/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F47/ORIGINAL/NONE/226557028"__proto__: Objectlength: 2__proto__: Array(0)length: 1__proto__: Array(0)__proto__: Object

Ошибка на стороне сервера:

Servlet.service () для сервлета [dispatcherServlet] в контексте с исключением пути path [] [Обработка запроса не удалась;вложенным исключением является org.springframework.web.multipart.MultipartException: не удалось проанализировать многочастный запрос сервлета;Вложенное исключение: java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException: запрос был отклонен, так как не было найдено многочастной границы] с основной причиной

org.apache.tomcat.util.http.fileupload.FileUploadException: запрос был отклонен, поскольку не было найдено многокомпонентной границы

Spring boot controller:
@PostMapping(value = "/signup", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public ResponseEntity<?> signupUser(@RequestParam("photo") MultipartFile photo) {
...
}

React native code:
openImagePicker = () => {
    ImagePicker.showImagePicker(this.options, async response => {
      this.setState({originUri: response.uri})
      const file = new FormData();
      file.append('photo', {
          uri: this.state.originUri,
          name: 'file_photo'
      });
      console.log('photo before resize: ', file)
      //here i call the register function(file)
}

function register(userImage) {

  console.log('photo from register api: ', file)

  return axios({ method: 'post', 
                baseURL: constants.BASE_URL,
                url: '/api/auth/signup',
                 headers: {
                   'Content-Type': 'multipart/form-data'
                 },
                data: userImage,
               })
        .then(res => {
          return res.data
         } ) 
        .catch( error => {
          console.log('error request api: ', error)

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