httpポストを使用してファイルをアップロードしようとしていますが、携帯電話でmicro-sdカードからファイルを使用しようとすると、ファイルが作成されないため、アップロードできません。SDカードではなく、メインの電話ストレージからファイルを選択するときに完全に機能します.
ファイル選択ダイアログに外部ライブラリを使用しています。SD カードから画像を選択しようとすると、次のように返されます (この例では、カメラ アプリから撮影した写真)。
/sdcard-ext/dcim/Camera/2012-07-02_12-28-19_548.jpg
これは、電話のOSファイルで見つけたランダムな画像から返されます。
/sdcard/DCIM/.thumbnails/1331049921270.jpg
これはSDカードにもあるように見えます(少なくとも私にはそうです)が、これは間違いなく電話のストレージです.
ファイルのアップロードに現在使用しているコードは次のとおりです。httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
HttpPost httppost = new HttpPost(myURL);
MultipartEntity mp = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
String mimeType = getFileMimeType(filePath);//the filePath is passed to the function
that this code is contained inside and is initially sent from the file selection dialog
mp.addPart("fileupload", new FileBody(new File(filePath), mimeType));
httppost.setEntity(mp);
String response = EntityUtils.toString( httpclient.execute( httppost ).getEntity(), "UTF-8" );
System.out.println(response);
httpclient.getConnectionManager().shutdown();
これがリムーバブル SD カードではなく、電話の内部ストレージで機能する理由を説明できる人がいれば、それは素晴らしいことです! ありがとう。
更新: Android 2.2 で違いが生じる場合は、それをターゲットにしています。違いがなければ、まだ Android 2.2 をターゲットにしています。