Отправка файла в сервис java из javascript и сохранение его на сервере - PullRequest
0 голосов
/ 24 мая 2019

На странице HTML у нас есть поле типа файла ввода. При выборе файла нам нужно вызвать сервис в Java, чтобы передать этот файл сервису. Это делается с помощью XMLHttpRequest Мы используем FormData для передачи файла в сервис java и принимаем его как InputStream. Но когда мы пытаемся сохранить этот InputStream, он не сохраняется правильно. Выбранный файл является графическим файлом, и когда мы сохраняем его и пытаемся открыть, он не показывает никакого содержимого.

Есть ли другой способ сделать это? Отправка файла в сервис java из javascript и сохранение его на сервере. ограничение в том, что мы можем использовать только javascript и java сервис.

            javascript code

            function saveToServer(file) {
                    const fd = new FormData();
                    fd.append('thefile', file);
                    const xhr = new XMLHttpRequest();
                    xhr.open('POST', JAVA_SERVICE_URL, true);
                    xhr.setRequestHeader('Content-Type', 'multipart/form-data');
                    xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
                    xhr.onload = function() {
                            if (xhr.status === 200) {
                                    // this is callback data: url
                                    console.log(xhr.responseText);
                            }
                    };
                    xhr.send(fd);
            }

            java service

            @POST
            @Path("/image/upload")
            @Consumes(MediaType.MULTIPART_FORM_DATA)
            public String imageUpload(InputStream uploadedInputStream) throws IOException {
                    File targetFile1 = new File("c:\\test1.png");
                    OutputStream os = new FileOutputStream(targetFile1);
                    FileUtils.copyInputStreamToFile(uploadedInputStream, targetFile1);
                    return "test";
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...