画像のアップロードで問題が発生しました。ユーザーが「画像のアップロード」をクリックすると、カメラを使用するかフォトギャラリーを使用するという警告ボックスが表示されるアプリケーションがあります。
ユーザーがいずれかを選択すると、カメラの意図またはギャラリーの意図のいずれかがトリガーされ、正常に機能します。画像の取得も正常に機能します。これは 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() {