Я пытаюсь преобразовать данные формы загрузки файла в base64.Сообщение ajax отправляет данные формы в бэкэнд.
$( "#profileModalForm" ).submit(function( event ) {
var formData = new FormData(this);
$.ajax({
cache: false,
url: 'SaveProfilePopupData.ws',
type: "POST",
enctype: 'multipart/form-data',
data: formData,
contentType: false,
processData: false,
success: function (html) {
$('#notificationArea').html(html);
}
});
event.preventDefault();
});
Затем на стороне java я пытаюсь прочитать изображение с помощью apache commons fileupload и сохранить в строку base64.
ServletFileUpload upload = new ServletFileUpload();
FileItemIterator iterator = upload.getItemIterator(request);
while(iterator.hasNext()){
FileItemStream item = iterator.next();
InputStream stream = item.openStream();
if(!item.isFormField()){
byte[] str = new byte[stream.available()];
stream.read(str);
imageBase64String = new String(Base64.getEncoder().encode(str));
}
}
Ятолько в состоянии получить частичное значение base64 строкового изображения, которое я загружаю (в изображении размером 7 КБ я могу видеть только половину изображения).Что я делаю не так?