0

Webサービスを介して画像をアップロードする必要があるAndroidアプリを作成しています。私のWebサービス部分は機能しています(コンソールアプリケーションでテストします)。だから私のエラーはアンドロイドの部分にあると思います。

写真を撮るためのAndroidコードの使用:

public void TakePicture(){          
    i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    //outputFileUri = Uri.fromFile( new File(Environment.getExternalStorageDirectory(), "appicture.jpeg"));
    //Log.i("URI", outputFileUri.toString());
    i.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
    startActivityForResult(i, cameraData);
}

活動結果:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    try{
        super.onActivityResult(requestCode, resultCode, data);
        //if I got information from Activity result
        if(resultCode == RESULT_OK){

            Bundle extras = data.getExtras();
            _bmp = (Bitmap) extras.get("data"); 

        }else{
            //log
            Log.v("Phone", "Error picture");
        }
    }
    catch (Exception e) {
        Log.i("Cam error", e.toString());
    }
}

そして今、送信部分:

public void SendReport(){
    File img;
    try {
        //Web service URL
        String url = "http://10.0.2.2:51136/API/picture";

        //Convert the picture
        ByteArrayOutputStream bao = new ByteArrayOutputStream();
        _bmp.compress(Bitmap.CompressFormat.JPEG, 100, bao);
        byte[] data = bao.toByteArray();

        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(url);
        MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);

        //Add the picture
        entity.addPart("image",new ByteArrayBody(data, "image/jpeg", "image"));
        httppost.setEntity(entity);

        //Call
        HttpResponse response = httpclient.execute(httppost);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }   
}
4

1 に答える 1

0

このようにしてみてください:

    entity.addPart("image",new ByteArrayBody(data, "image.jpg"));
于 2012-06-27T08:27:10.570 に答える