2016-08-07 4 views
-2

Ich habe Code, um Bild und Text auf den Server zu laden, aber mein Code codiert das Bild und auf dem Server sollte das Bild entschlüsselt werden.verhindern Bildcodierung in Java

Ich möchte Bildcodierung verhindern. Ich habe einige Wege ausprobiert, aber sie funktionieren nicht.

Ich weiß nicht, wie das geht. Bitte hilf mir.

Hier ist mein Code:

public class Share_food extends Activity { 

ProgressDialog prgDialog; 
String encodedString; 
RequestParams params = new RequestParams(); 
String imgPath, fileName; 
Bitmap bitmap; 
private static int RESULT_LOAD_IMG = 1; 
EditText ti,desc; 
TextView tv; 
String url="http://example.com/index.php"; 

@SuppressLint("CutPasteId") 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.share_food); 
    prgDialog = new ProgressDialog(this); 
    prgDialog.setCancelable(false); 
    ti= (EditText)findViewById(R.id.title); 
    desc=(EditText)findViewById(R.id.share_desc22); 

    //getActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#3b5998"))); 
    //getActionBar().setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent))); 
    //getActionBar().setTitle(""); 
} 


public void loadImagefromGallery(View view) { 
    Intent galleryIntent = new Intent(Intent.ACTION_PICK, 
      android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
    startActivityForResult(galleryIntent, RESULT_LOAD_IMG); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    try { 
     if (requestCode == RESULT_LOAD_IMG && resultCode == RESULT_OK 
       && null != data) { 
      Uri selectedImage = data.getData(); 
      String[] filePathColumn = { MediaStore.Images.Media.DATA }; 
      Cursor cursor = getContentResolver().query(selectedImage, 
        filePathColumn, null, null, null); 
      cursor.moveToFirst(); 

      int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
      imgPath = cursor.getString(columnIndex); 
      cursor.close(); 
      ImageView imgView = (ImageView) findViewById(R.id.imgView); 
      imgView.setImageBitmap(BitmapFactory 
        .decodeFile(imgPath)); 
      String fileNameSegments[] = imgPath.split("/"); 
      fileName = fileNameSegments[fileNameSegments.length - 1]; 
      params.put("filename", fileName); 

     } else { 
      Toast.makeText(this, "error", 
        Toast.LENGTH_LONG).show(); 
      imgPath="2"; 
     } 
    } catch (Exception e) { 
     Toast.makeText(this, "error...!", Toast.LENGTH_LONG) 
       .show(); 
    } 
} 

public void uploadImage(View v) { 

    if (imgPath != null && !imgPath.isEmpty()) { 
     prgDialog.setMessage("process"); 
     prgDialog.show(); 
     encodeImagetoString(); 
    } else { 
     prgDialog.setMessage("process"); 
     prgDialog.show(); 
     triggerImageUpload(); 
    } 
} 

public void encodeImagetoString() { 
    new AsyncTask<Void, Void, String>() { 
     protected void onPreExecute() { 
     }; 

     @Override 
     protected String doInBackground(Void... params) { 

      BitmapFactory.Options options = null; 
      options = new BitmapFactory.Options(); 
      options.inSampleSize = 3; 
      bitmap = BitmapFactory.decodeFile(imgPath, 
        options); 
      ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
      bitmap.compress(Bitmap.CompressFormat.PNG, 50, stream); 
      byte[] byte_arr = stream.toByteArray(); 
      encodedString = Base64.encodeToString(byte_arr, 0); 
      return ""; 
     } 

     @Override 
     protected void onPostExecute(String msg) { 

      prgDialog.setMessage("upload"); 

      params.put("title", ti.getText().toString().trim()); 

      //desc 
      //params.put("desc",desc.getText().toString().trim()); 

      params.put("image", encodedString); 

      triggerImageUpload(); 
     } 
    }.execute(null, null, null); 
} 

public void triggerImageUpload() { 

    params.put("title", ti.getText().toString().trim()); 

    //desc 
    //params.put("desc", desc.getText().toString().trim()); 

    makeHTTPCall(); 
} 

public void makeHTTPCall() { 
    prgDialog.setMessage("connecting"); 
    AsyncHttpClient client = new AsyncHttpClient(); 
    client.post(url, 
      params, new AsyncHttpResponseHandler() { 

       @Override 
       public void onSuccess(String response) { 
        prgDialog.hide(); 
        Toast.makeText(getApplicationContext(), "done", 
          Toast.LENGTH_LONG).show(); 
       } 

       @Override 
       public void onFailure(int statusCode, Throwable error, 
             String content) { 
        prgDialog.hide(); 
        if (statusCode == 404) { 
         Toast.makeText(getApplicationContext(), 
           "error", 
           Toast.LENGTH_LONG).show(); 
        } 
        else if (statusCode == 500) { 
         Toast.makeText(getApplicationContext(), 
           "error", 
           Toast.LENGTH_LONG).show(); 
        } 
        else { 
         Toast.makeText(
           getApplicationContext(), 
           "error !!!" 
             + statusCode, Toast.LENGTH_LONG) 
           .show(); 
        } 
       } 
      }); 
} 

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    if (prgDialog != null) { 
     prgDialog.dismiss(); 
    } 
} 

}

Antwort

0

Sie haben die Zeichenfolge im empfangenden Ende zu dekodieren und die dekodierten eine speichern. Veröffentlichen Sie den Code des Empfangsendes auch für mehr Bequemlichkeit.

Verwandte Themen