1- base64 でエンコードされた画像の URI を取得する
String imageData= canvas2.toDataUrl();
2- RPC 呼び出しを介してサーバー側に画像データを送信する
jdbc.saveImage(imageData,callback);
3- Web サーバー API への HTTP Post 要求を作成します。
URL url = new URL("http://myserver.com/my_images_folder/save_image.php");
URLConnection conn = url.openConnection();
conn.setReadTimeout(15000); //set a large time out since we're saving images
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
// Get the response which contains the image file name
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
resa+=line;
}
wr.close();
System.out.println("close1");
rd.close();
System.out.println("Received: "+line);
- サーバー側 (Web サーバー -php API):
4- 画像をファイル サーバーに保存し、画像ファイル名を返す
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])){
$imageData=$GLOBALS['HTTP_RAW_POST_DATA'];
//using a timestamp to create unique file names
//you can pass file name in params if you like instead
$fileName='User_Images_'.time().'.png';
// Remove the headers (data:,) part.
$filteredData=substr($imageData, strpos($imageData, ",")+1);
// Need to decode base64 encoded image
$unencodedData=base64_decode($filteredData);
$fp = fopen( $fileName, 'wb' );
fwrite( $fp, $unencodedData);
fclose( $fp );
$fileName2='http://myserver.com/my_images_folder/'.$fileName;
//return the file name
echo($fileName);
}else{
echo('no data posted');
}
ファイルへのハード パーマリンクを作成したので、メールに埋め込んだり、その他の操作を実行したりできます。インライン埋め込みについては、以下の参照 3 を参照してください (ファイルまたは URL が必要です。これで、Web サーバー上の画像へのハード URL が得られたので、メールで送信できます)