0

画像のエンコードされたバイトをbase64形式に取得し、残りのWebサービスに送信しようとしています。サービス内で、それをデコードして画像に変換し、ローカルパスに画像を保存したいと考えています。デコード中に失敗します。ロジックが正しいかどうかはわかりません。ガイダンスが必要

    @POST
    @Path("/imageupload")
    @Produces("text/html")
    @Consumes(MediaType.MULTIPART_FORM_DATA)
     public String execute(@FormDataParam("image") String inputfile) throws Exception
    {

            System.out.println("entered into service");
        BASE64Decoder decoder = new BASE64Decoder();
        ByteBuffer img=decoder.decodeBufferToByteBuffer(inputfile); 
        System.out.println();
            File outputfile = new File("D:\\TEST\\test.png");
                ImageIO.write(img, "png", outputfile);

ロジックは次のとおりです。

Step 1: get the byte array as string inside the service.
Step 2: decode it 
Step 3: write the byte into file with png format
4

1 に答える 1

1

正しくエンコードされた画像を取得し、それが png であると確信している場合は、この方法で行います。

BASE64Decoder decoder = new BASE64Decoder();
byte[] decodedImageBytes = decoder.decodeBuffer(inputfile); 
final FileOutputStream out = new FileOutputStream(new File("D:\\TEST\\test.png"));
out.write(decodedImageBytes);
out.close();

PS 画像をエンコードされた文字列として受け取っていることを確認してください。

于 2013-04-17T07:14:08.713 に答える