繁体   English   中英

在Java中将base64字符串转换为服务器端的图像

[英]Convert base64 string to image at server side in java

我有base64字符串,无论服务器端的图像格式如何,我都希望将其转换回图像。 我通过使用以下代码进行了尝试,正在创建图像,但是当我尝试预览时,显示错误无法加载图像。

public void convertStringToImage(String base64) {
        try {
            byte[] imageByteArray = decodeImage(base64);

            FileOutputStream imageOutFile = new FileOutputStream("./src/main/resources/demo.jpg");
            imageOutFile.write(imageByteArray);
            imageOutFile.close();
        } catch (Exception e) {
            logger.log(Level.SEVERE, "ImageStoreManager::convertStringToImage()" + e);
        }
    }


    public static byte[] decodeImage(String imageDataString) {
        return Base64.decodeBase64(imageDataString);
    }

我应该怎么做才能使我的图像看起来正确?

您的代码看起来不错。 但我可以为您建议更多调试步骤。

  1. 使用此网页手动编码文件
  2. 比较String base64包含与您在页面上看到的内容完全相同的内容。 //如果此处出现问题,则您的请求已损坏,也许前端有一些编码问题?
  3. 查看在./src/main/resources/demo.jpg下创建的文件内容,并比较内容(大小,二进制比较)//如果此处出现问题,您将知道实际上保存操作已损坏

备注:

  • 您是否尝试在关闭之前执行.flush()
  • 当前形式的代码可能会导致资源泄漏,请看一下try-with-resources

尝试这个:

public static byte[] decodeImage(String imageDataString) {
    return org.apache.commons.codec.binary.Base64.decodeBase64(imageDataString.getBytes());
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM