使用数据 URI 将图像上传到使用 Java(PlayFramework-2.6 或纯 Java)的服务器

Posted

技术标签:

【中文标题】使用数据 URI 将图像上传到使用 Java(PlayFramework-2.6 或纯 Java)的服务器【英文标题】:Upload image using data URI to server with Java (PlayFramework-2.6 or Plain Java) 【发布时间】:2019-02-05 09:23:28 【问题描述】:

我正在使用 AJAX 请求从网页传递图像。图像作为数据 URI 传递给 Java 函数,如下所示。

    public Result upload() 
    String dataUri = request().body().asText();
    System.out.println(dataUri);
    File file = dataUri;

    return ok("File uploaded");

我遇到的问题是我认为我需要将数据 URI 转换为文件对象才能将其传递给“文件文件 =”。如果我能做到这一点,那么图像将被上传到服务器。有接盘侠吗?

【问题讨论】:

编译/运行时遇到什么错误?您研究过如何将数据 URI 转换为 File 对象吗? 我研究了很多,但还没有找到可行的解决方案,我得到的错误是“预期的 java.file.io”,但得到了字符串或类似的东西。 我不知道你的数据是什么格式,但由于它是图像,我假设它是 base64。我刚刚阅读了en.wikipedia.org/wiki/Data_URI_scheme,似乎您需要使用一些字符串操作或数据 URI 库提取 base64 编码的二进制文件,然后解码为二进制文件以写入文件。 (第一次 google 搜索在 java 中写入 File 对象:baeldung.com/java-write-to-file) 裁剪并上传!我在 *** 上找到了另一个链接,该链接向我展示了如何将 base64 图像转换为文件。我已成功将裁剪后的文件加载到服务器上的目录中。谢谢你的帮助!!有答案的链接在这里:***.com/questions/23979842/… 【参考方案1】:

裁剪并上传!我在 *** 上找到了另一个链接,该链接向我展示了如何将 base64 图像转换为文件。我已成功将裁剪后的文件加载到服务器上的目录中。谢谢你的帮助!!有答案的链接在这里: Convert base64 string to image

【讨论】:

以上是关于使用数据 URI 将图像上传到使用 Java(PlayFramework-2.6 或纯 Java)的服务器的主要内容,如果未能解决你的问题,请参考以下文章

反应本机图像获取/上传

将图像上传到 Firebase 存储后如何获取图像 uri?

使用 typescript 使用 data-uri 将图像转换为 base64

使用 ngFlow 以数据 uri 格式发送图像

将数据 URI 转换为文件,然后附加到 FormData

React Native Image Fetch / Upload