Я сделал несколько примеров загрузок в 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, но не для изображений в других форматах.Я просмотрел много ссылок / сайтов, но не смог найти способ.Что может быть причиной!Спасибо :) заранее