0

画像のアップロードで問題が発生しました。ユーザーが「画像のアップロード」をクリックすると、カメラを使用するかフォトギャラリーを使用するという警告ボックスが表示されるアプリケーションがあります。

ユーザーがいずれかを選択すると、カメラの意図またはギャラリーの意図のいずれかがトリガーされ、正常に機能します。画像の取得も正常に機能します。これは onActivityResult です。

ただし、画像が取得/選択されたら、サーバーにアップロードしたいのですが、これは問題が発生した場合です. CAMERA 画像のみが BasicNameValuePair に追加されます。カメラ オプションが選択されている場合はその画像を追加するか、フォト ギャラリーが選択されている場合はその画像をサーバーにアップロードするようにコーディングするにはどうすればよいですか????

スレッドの読み込みThread = new Thread(){

        @Override
        public void run() {
            // TODO Auto-generated method stub
            try{

                if (cameraImage.getByteCount()!=0)
                {   
                    ByteArrayOutputStream BArrayOutPut = new ByteArrayOutputStream();
                    cameraImage.compress(Bitmap.CompressFormat.JPEG, 100, BArrayOutPut);
                    byte [] byteArray = BArrayOutPut.toByteArray();
                    String capturedImageInString = Base64.encodeBytes(byteArray);

                    Log.i("Camera_Image","Image " +capturedImageInString);
                    try {
                    nvp.add(new BasicNameValuePair("Camera_Image", capturedImageInString)); 
                    }catch (Exception e){Log.i("nvpADD","Error is " +e.toString());}
                }else if (uploadImage.getByteCount()!=0){
                    try{
                        ByteArrayOutputStream BArrayOutPut = new ByteArrayOutputStream();
                        uploadImage.compress(Bitmap.CompressFormat.JPEG, 100, BArrayOutPut);
                        byte [] byteArray = BArrayOutPut.toByteArray();
                        String uploadImageInString = Base64.encodeBytes(byteArray);

                        Log.i("log_Upload","UploadedImage " +uploadImageInString);

                        nvp.add(new BasicNameValuePair("Camera_Image", uploadImageInString));

                    }catch (Exception e){
                        Log.e ("LOG_IMAGEUPLOAD", "Error uploading Image "+e.toString());e.printStackTrace();
                        }

                }


                // Get input values of EditTexts
                String UserName = username.getText().toString().trim();
                String ProductTitle = productTitle.getText().toString().trim();
                String ProductPrice = productPrice.getText().toString().trim();
                String ProductDescription = productDescription.getText().toString().trim();
                String ProductCategory = productCategory.getSelectedItem().toString().trim();


                //Adding string values to the array
                nvp.add(new BasicNameValuePair("TextView_Username", UserName));                             
                nvp.add(new BasicNameValuePair("EditText_Title", ProductTitle));
                nvp.add(new BasicNameValuePair("EditText_Price", ProductPrice));
                nvp.add(new BasicNameValuePair("EditText_Description", ProductDescription));
                nvp.add(new BasicNameValuePair("Spinner_Category", ProductCategory));

                httpPost.setEntity(new UrlEncodedFormEntity(nvp));


            ResponseHandler<String> RegisterHandler = new BasicResponseHandler();
            final String respond = httpClient.execute(httpPost,RegisterHandler);


            runOnUiThread(new Runnable() {
4

0 に答える 0