У меня есть веб-страница, куда я загружаю файл из 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