私はこのコードを使用していますが、いくつかのメモリの問題が発生しています:
// Get the image from the sdcard
Bitmap bm = BitmapFactory.decodeFile("/sdcard/myimage.jpg");
// turn image into byte array output stream
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// 'compress' the jpeg
bm.compress(Bitmap.CompressFormat.JPEG, 100, baos);
// get byte[] array of the image
byte[] byteArray = baos.toByteArray();
// turn image into base64 string
String encodedImage = Base64.encodeToString(byteArray, Base64.DEFAULT);
// and base64 string to 'params' value pair
params.add(new BasicNameValuePair("userfile", encodedImage));
try {
HttpPost request = new HttpPost();
String urlString = "http://www.example.com";
request.setURI(new URI(urlString));
if(params != null) {
request.setEntity(new UrlEncodedFormEntity(params));
HttpClient client = new DefaultHttpClient();
client.execute(request);
} // end if
} // end try
Base64OutputStream
の代わりに使用することが提案されていますが、サーバーにアップロードできる文字列の出力Base64.encodeToString
を使用することに成功していません。IMAGEBase64OutputStream
での使用例は非常に役立ちます。Base64OutputStream
編集
答えを機能させるには、Androidプロジェクトにapache-mime4j-dom-0.7.2.jarとhttpmime-4.1.3.jarの2つのファイルを追加する必要があります。
apache-mime4j-dom-0.7.2.jarはhttp://james.apache.org/download.cgi#Apache_Mime4Jからダウンロードできます。バイナリをダウンロードして解凍し、apache-mime4j-dom-0.7.2を見つけます。 .jarファイル。
次に、 http://grepcode.com/snapshot/repo1.maven.org/maven2/org.apache.httpcomponents/httpmime/4.1.3にアクセスして、httpmime- 4.1.3.jarをダウンロードします。
次に、これらのファイルを両方ともEclipseのプロジェクトにドラッグします。次に、Eclipseで、「プロジェクト」>「プロパティー」を選択します。[プロパティ]ポップアップを選択し、[Javaビルドパス]を選択します。[ライブラリ]タブをクリックします([ソース]、[プロジェクト]、[ライブラリ]、[注文とエクスポート]の順に検索します)。[瓶の追加]をクリックして、apache-mime4j-dom-0.7.2.jarとhttpmime-4.1.3.jarを選択します。次に、[注文とエクスポート]タブをクリックします。apache-mime4j-dom-0.7.2.jarおよびhttpmime-4.1.3.jarを確認してください。次に、そのポップアップを閉じて、Eclipseメニューから[Project]>[Clean]を選択します。