2016-12-23 12 views
0

サーバー側のイメージ形式に関係なくイメージに変換したいbase64文字列があります。次のコードを使用して試してみましたが、イメージが作成されていますが、プレビューしようとしているときにエラーを表示できませんでした。base64文字列をjavaのサーバー側のイメージに変換する

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

を見ていますか?どのくらいそれはbase64と比較されますか?あなたはbase64が始めるのが正しいことをどのように確認しましたか? –

+0

あなたのコードはそのトリックを行うべきです。問題は他の場所になければなりません。 –

+0

あなたの画像はjpg、gif、png、または他のものではありませんか? –

答えて

1

あなたのコードは正常に見えます。私はあなたのためのいくつかのより多くのデバッグ手順を提案することができます。 String base64は、ページ上で見持っているように、まったく同じ内容が含まれている場合

  1. 手動たとえば、使用してファイルをエンコードし、このwebpage
  2. を比較してください。 //ここで何か間違っていると、リクエストが破損しているか、フロントエンド側でエンコードの問題が発生している可能性がありますか?

    • あなたがしようとしました:
    • ここにあなたが実際に操作を保存することを間違って何かを知っている場合// ./src/main/resources/demo.jpgの下に作成されたファイルの内容を参照し、コンテンツ(サイズ、バイナリ比較)を比較が

備考壊れています閉じる前に.flush()を行うには?リソースのリークが発生する可能性があります、現在の形で

  • あなたのコードは、まあ、あなたが作成されていたファイルを見てきましたtry-with-resources
  • 0

    はこれを試してみてください:

    public static byte[] decodeImage(String imageDataString) { 
        return org.apache.commons.codec.binary.Base64.decodeBase64(imageDataString.getBytes()); 
    } 
    
    関連する問題