Отправка файла на сервер из файла ввода HTML - PullRequest
1 голос
/ 30 октября 2019

У меня есть веб-страница, куда я загружаю файл из HTML-элемента типа файла ввода. Затем мне нужно отправить этот файл через Url с Ajax на сервер Java в веб-службу REST, где он будет обработан.

Я попробовал функцию FileReader (). ReadAsDataURL в javascript, файл закодирован в base64, а затем отправленна сервер по URL. Но когда я пытаюсь декодировать его в Java, он терпит неудачу.

Как мне этого добиться?

Мой код на стороне клиента:

var file = document.getElementById('add_attach').files[0];
var filename = document.getElementById('add_attach').value;

if (file) {
    var reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = function(e) {
        var name = encodeURIComponent(filename);
        var file_content = e.target.result;
         //Ajax request to server with sending file_content
    };
}

Мой код сервер-сторона:

file_content = file_content.substring(file_content.indexOf("base64"));
file_content = file_content.replace("base64,", "");
byte[] decodedBytes = Base64.getDecoder().decode(file_content);

Ошибка, которую я получаю:

java.lang.IllegalArgumentException: Illegal base64 character 20
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...