Provide Image File from Java to PHP via Web Service using Base64

Karena alasan security tidak semua hal dapat dibagikan dan dibaca secara plain, munculah ide untuk memanfaatkan encoding. Bagaimana cara membuat layanan dari bahasa pemrograman Java (JAX-WS) untuk melakukan encoding file gambar dengan Base64, sedangkan client yang akan mengakses dan mendecode dengan Base64 menjadi gambar dibangun dari bahasa pemrograman PHP (NuSOAP)? Tentunya sangat dimungkinkan karena kedua bahasa pemrograman tersebut memiliki kemampuan untuk encode dan decode secara native.

Berikut snippet code untuk melakukan encoding file gambar dengan stream bytes ke Base64 (Java ~ JAX-WS) serta store dan return dalam bentuk string:

@WebMethod(operationName = "ImageEncoded64") 
public String ImageEncoded64(@WebParam(name = "paramDummy") String paramDummy) throws Exception{ 
	BufferedImage bufImage = ImageIO.read(new File("D:\\Documents\\NetBeansProjects\\WebApplication1\\blabla.jpg")); 
	ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
	ImageIO.write( bufImage, "jpg", stream); 
	stream.flush(); 
	String en64Image = Base64.encode(stream.toByteArray()); 
	stream.close(); 
	return en64Image; 
}

Sedangkan untuk client (PHP ~ NuSoap), akan mendecode string tersebut menjadi image melalui kombinasi method base64_decode dan imagecreatefromstring :

try{ 
	require_once('nusoap/nusoap.php'); 
	$param = array("paramDummy"=>"paramDummy"); 
	$client = new nusoap_client("http://localhost:8080/WebApplication1/NewWebService?WSDL",true); 
	$responseEnImage = $client->call("ImageEncoded64",$param); 
	$data = base64_decode($responseEnImage["return"]); 
	$image = imagecreatefromstring($data); 
	header('Content-Type: image/jpeg'); 
	imagejpeg($image); 
	imagedestroy($image); 
} 
catch (Exception $e){ 
	echo $e; 
}

Oke sekian dari saya, intinya kita dapat mengamankan file tersebut agar tidak terlalu terexpose. Minimal tidak polos atau plain.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.