当前位置: 首页 > 知识库问答 >
问题:

如何在Java中将图像转换为base64字符串?[副本]

子车安和
2023-03-14

它可能是一个重复的,但我面临一些问题,将图像转换为base64以发送HTTP Post。我试过这段代码,但它给了我错误的编码字符串。

 public static void main(String[] args) {

           File f =  new File("C:/Users/SETU BASAK/Desktop/a.jpg");
             String encodstring = encodeFileToBase64Binary(f);
             System.out.println(encodstring);
       }

       private static String encodeFileToBase64Binary(File file){
            String encodedfile = null;
            try {
                FileInputStream fileInputStreamReader = new FileInputStream(file);
                byte[] bytes = new byte[(int)file.length()];
                fileInputStreamReader.read(bytes);
                encodedfile = Base64.encodeBase64(bytes).toString();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            return encodedfile;
        }

输出:[b@677327b6

但是我在许多在线编码器中将这个相同的图像转换为Base64并且它们都给出了正确的Base64大字符串。

编辑:怎么是复制品??这个链接是我的重复,没有给出我想要的字符串转换的解决方案。

我错过了什么??

共有1个答案

巫马刚洁
2023-03-14

问题是,您返回的是base64.encodeBase64(bytes)调用toString(),它返回一个字节数组。所以你最后得到的是一个字节数组的默认字符串表示形式,它对应于你得到的输出。

相反,您应该执行以下操作:

encodedfile = new String(Base64.encodeBase64(bytes), "UTF-8");
 类似资料:
  • 问题内容: 我将图像转换为 base64 字符串,并将其从android设备发送到服务器。现在,我需要将该字符串改回图像并将其保存在数据库中。 有什么帮助吗? 问题答案: 尝试这个:

  • 问题内容: 我正在尝试使用jQuery插件即crop.js裁剪/调整用户个人资料图像的大小,该插件通过ajax将用户图像作为base64发送给我的控制器 但我无法解码此base64 字符串作为图像,你们可以指导我如何将base64字符串作为图像保存在服务器上吗? 问题答案: 假设有几件事,您知道输出文件名是什么,并且您的数据以字符串形式出现。我确定您可以修改以下内容以满足您的需求: 请注意,这只是

  • 我正在尝试使用jquery插件裁剪/调整用户配置文件图像的大小,即crop.js,它将用户图像作为base64通过ajax发送到我的控制器

  • 然而,当我这样做的时候,什么也没有出现。我在logcat中没有任何错误。我做错了什么? 谢谢

  • 问题内容: 我正在尝试将base64图像字符串转换为图像文件。 使用以下代码将其转换为图像文件: 但是我遇到了错误,这是怎么了? 问题答案: 问题是编码内容中包含该内容。当base64函数对其进行解码时,这将导致无效的图像数据。像这样在解码字符串之前先删除函数中的数据。

  • 问题内容: 我需要将图像转换为base64字符串,以便可以将图像发送到服务器。是否有任何js文件用于此…?其他如何转换 问题答案: 您可以使用HTML5 : 创建一个画布,将图像加载到其中,然后用于获取base64表示形式(实际上,它是一个URL,但其中包含base64编码的图像)。