Частичная строка при преобразовании файлов загрузки данных форм в base64 - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь преобразовать данные формы загрузки файла в 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 КБ я могу видеть только половину изображения).Что я делаю не так?

...