Сохранить изображение на сервере с помощью PHP MySQL - PullRequest
0 голосов
/ 08 октября 2019

Это первый проект, который я делаю в Android Studio, так что извините, если это простая проблема, с которой я столкнулся.

Я пытаюсь сохранить изображения на моем сервере базы данных, используя mysqli, который был взятиз галереи или камеры моего устройства.

Что происходит, я могу получить доступ ко всей галерее, но приложение или страница закрываются, когда я пытаюсь использовать камеру. Кроме того, фотография не сохраняется в папку, в которую я ее направил.

Я неправильно это кодировал или пропустил важный элемент функциональности? Вот мои коды

 @Override
 public void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);
if (resultCode == this.RESULT_CANCELED) {
    return;
}
if (requestCode == GALLERY) {


    if (data != null) {
        Uri filePath = data.getData();
        try {
            bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), filePath);
            String path = getStringImage(bitmap);
            Toast.makeText(Addvehicle.this, "Image Saved!", Toast.LENGTH_SHORT).show();
            preview.setImageBitmap(bitmap);

        } catch (IOException e) {
            e.printStackTrace();
            Toast.makeText(Addvehicle.this, "Failed!", Toast.LENGTH_SHORT).show();
        }
        addVehicle(getStringImage(bitmap));


    }

        } else if (requestCode == CAMERA) {
            Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
            preview.setImageBitmap(thumbnail);
            getStringImage(thumbnail);
            Toast.makeText(Addvehicle.this, "Image Saved!", Toast.LENGTH_SHORT).show();
        }
}

Я сохраняю изображение, как это, и также предоставил несколько разрешений.

 public String getStringImage(Bitmap bitmap){
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);

    byte[] imageByteArray = byteArrayOutputStream.toByteArray();
    String encodedImage = Base64.encodeToString(imageByteArray, Base64.DEFAULT);
    return encodedImage;
}

private void  requestMultiplePermissions(){
    Dexter.withActivity(this)
            .withPermissions(
                    Manifest.permission.CAMERA,
                    Manifest.permission.WRITE_EXTERNAL_STORAGE,
                    Manifest.permission.READ_EXTERNAL_STORAGE)
            .withListener(new MultiplePermissionsListener() {
                @Override
                public void onPermissionsChecked(MultiplePermissionsReport report) {
                    // check if all permissions are granted
                    if (report.areAllPermissionsGranted()) {
                        Toast.makeText(getApplicationContext(), "All permissions are granted by user!", Toast.LENGTH_SHORT).show();
                    }

                    // check for permanent denial of any permission
                    if (report.isAnyPermissionPermanentlyDenied()) {
                        // show alert dialog navigating to Settings
                        //openSettingsDialog();
                    }
                }

                @Override
                public void onPermissionRationaleShouldBeShown(List<PermissionRequest> permissions, PermissionToken token) {
                    token.continuePermissionRequest();
                }

            }).
            withErrorListener(new PermissionRequestErrorListener() {
                @Override
                public void onError(DexterError error) {
                    Toast.makeText(getApplicationContext(), "Some Error! ", Toast.LENGTH_SHORT).show();
                }
            })

            .onSameThread()
            .check();
}
}

Итак, что я сделал не так? Заранее благодарим того, кто захочет найти время, чтобы ответить.

...