Android MIMEマルチパートでファイルをアップロードする
AbstractHttpEntry を見ると、SDK Platform Android 2.1, API 7, revision 1 には、MIMEマルチパートを利用するためのライブラリは同梱されていないようだ。
このブログを参考(完全にそのまま)に、Android から、ファイルをMIMEマルチパートでアップロードしてみる。
まず、上述のように機能が同梱されていないので、以下のライブラリーを入手する必要があるそうだ。
今回は、以下の3つのアーカイブを入手
httpmime は、httpcomponents-client に httpclient とともにアーカイブされている。
で、それぞれ解凍して、以下の jar ファイルを Android アプリの libs フォルダに置いてあげる。
うーん、公開しているアプリケーション自体のファイルサイズが、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);
あとは、これだけ。
無事、送信できることが確認できました。
また一歩野望に近づいた!