Кодирования и декодирования base64 и отправить его в ПК
вчера я сделал код, как отправить изображение на ПК
вот мой код...
графическое представление
upload_gambar = (ImageView) findViewById(R.id.gambar1);
это кнопка для загрузки изображения
pengajuan.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (editText.getText().toString().length() == 0) { editText.setError("Masukkan Tanggal!"); } else if (keterangan.getText().toString().length() == 0) { keterangan.setError("Masukkan Keterangan!"); } else if (upload_gambar.getDrawable() == null) { Toast.makeText(getApplicationContext(), "Upload gambar terlebih dahulu", Toast.LENGTH_SHORT).show(); } else { try { imagetoString(bitmap); } catch (IOException e) { e.printStackTrace(); } postfull(); postfullfirst(); } } });
для выбора изображения
upload = (Button) findViewById(R.id.upload); upload.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ActivityCompat.requestPermissions(sakit.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, CODE_GALLERY_REQUEST); } }); } public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { if (requestCode == CODE_GALLERY_REQUEST) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { Intent intent = new Intent(Intent.ACTION_PICK); intent.setType("image/*"); startActivityForResult(Intent.createChooser(intent, "Select Image"), CODE_GALLERY_REQUEST); } else { Toast.makeText(getApplicationContext(), "You don't have permission to access gallery!", Toast.LENGTH_LONG).show(); } return; } super.onRequestPermissionsResult(requestCode, permissions, grantResults); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CODE_GALLERY_REQUEST && resultCode == RESULT_OK && data != null) { Uri path = data.getData(); try { InputStream inputStream = getContentResolver().openInputStream(path); bitmap = BitmapFactory.decodeStream(inputStream); upload_gambar.setImageBitmap(bitmap); upload_gambar.setVisibility(View.VISIBLE); } catch (IOException e) { e.printStackTrace(); } Toast.makeText(sakit.this, "Gambar sudah diupload", Toast.LENGTH_SHORT).show(); } super.onActivityResult(requestCode, resultCode, data); }
это команда а оно есть
private void imagetoString(Bitmap bitmap) throws IOException { String gambar = nopengajuan.getText().toString(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 50, baos); byte[] imageBytes = baos.toByteArray(); String imageString = Base64.encodeToString(imageBytes, Base64.DEFAULT); imageBytes = Base64.decode(imageString, Base64.DEFAULT); Bitmap decodedImage = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length); upload_gambar.setImageBitmap(decodedImage); FileOutputStream fos = new FileOutputStream ("C:\\Users\\ICT-PROGRAMER\\Pictures\\" + gambar + ".jpeg"); fos.write(imageBytes); } }
Что я уже пробовал:
- изображение уже закодировано
- строка, закодированная была декодирована
- изображение не появляется в файле