Загрузка изображения в onedrive "Ошибка интерпретации файла изображения JPEG" - PullRequest
0 голосов
/ 17 января 2019

Я сделал несколько примеров загрузок в OneDrive с использованием Graph API.Я могу успешно загружать файлы (текстовые файлы) через OkHttp.Но когда дело доходит до изображений, я получаю это сообщение после открытия изображения

Error interpreting JPEG image file (Not a JPEG file: starts with 0xef 0xbf)

после загрузки изображения в onedrive.Изображения в формате .svg загружаются успешно, но изображения в формате .jpg, .png портятся при загрузке на один диск.

Мой подход состоит в следующем

Преобразование изображения в байтовый массив с последующим преобразованием(запись) этого байтового массива в загружаемый файл.

Код для преобразования изображения в байтовый массив

byte[] contentBuilder = IOUtils.toByteArray(file.getObjectContent());

Код для загрузки байтового массива в onedrive в исходном виде.

String url = "https://graph.microsoft.com/v1.0/drive/root:/" + step.file_name + ":/content";

                        Request request = new Request.Builder().url(url)
                                .put(RequestBody.create(MediaType.parse("image/*"), step.file_data))
        //step.file_data contains the byte array.
                                .addHeader("Authorization", String.format("Bearer %s", step.getAccess_token()))
                                .build();
    Response response = okHttpClient.newCall(request).execute();

Этот подход работает для текстовых файлов и изображений в формате .svg, но не для изображений в других форматах.Я просмотрел много ссылок / сайтов, но не смог найти способ.Что может быть причиной!Спасибо :) заранее

...