Android MIMEマルチパートでファイルをアップロードする

AbstractHttpEntry を見ると、SDK Platform Android 2.1, API 7, revision 1  には、MIMEマルチパートを利用するためのライブラリは同梱されていないようだ。

このブログを参考(完全にそのまま)に、Android から、ファイルをMIMEマルチパートでアップロードしてみる。

まず、上述のように機能が同梱されていないので、以下のライブラリーを入手する必要があるそうだ。

今回は、以下の3つのアーカイブを入手

httpmime は、httpcomponents-client に httpclient とともにアーカイブされている。

で、それぞれ解凍して、以下の jar ファイルを Android アプリの libs フォルダに置いてあげる。

mime_android01

うーん、公開しているアプリケーション自体のファイルサイズが、118KB なのを考えると、結構サイズが大きいですね。サーバーサイドとは違って、気になりますね。

上記ブログでは言及されていない、httpcore-nio-4.0.1.jar はいるのかな?

はずして動くようなら、はずしちゃおう。

DefaultHttpClient client = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(uri);
File upfile = new File(info.getPath());

MultipartEntity entity = new MultipartEntity();
entity.addPart("upload_file_name",     new StringBody(upfile.getName()));
entity.addPart("upload_file_contents", new FileBody(upfile));
httpPost.setEntity(entity);
response = client.execute(httpPost);

あとは、これだけ。

無事、送信できることが確認できました。

また一歩野望に近づいた!