java - 图像上传到 onedrive “错误解释 JPEG 图像文件”
问题描述
我使用图形 API 将一些示例上传到 OneDrive。我可以通过 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 格式的图像,但不适用于其他格式的图像。我浏览了许多参考资料/网站,但找不到方法。可能是什么原因!先感谢您
解决方案
推荐阅读
- c++ - 有没有办法通过 gnu make 编译子目录中的源代码
- html - 如何使用直播服务器打开当前编辑html?
- javascript - XHR Get 请求不加载从 Express 应用程序接收到的 HTML 字符串
- java - 在具有多个操作的方法中使用 Spring @Transactional
- reactjs - 反应钩子混乱
- maven - 从 maven 依赖继承子依赖
- matlab - 使用 Matlab fitcdiscr 的 LDA 系数
- spartacus-storefront - 登录后强制 NavigationNodes 刷新
- react-native - 如何在排毒测试中从 RNN 中识别导航选项卡按钮
- python - 使用“python -c”控制台命令模式实现for循环