java - 将图片从android插入数据库

标签 java android mysql

在我的项目中,我遇到了将图片从 android 插入数据库的问题。 我成功地从图库移动设备插入了图片,但无法从相机移动设备插入图片。 这是我的源代码

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        if (requestCode == REQUEST_CAMERA) {
            Uri selectedImage = data.getData();
            String[] filePathColumn = { MediaColumns.DATA };
            Cursor cursor = getContentResolver().query(selectedImage,
                    filePathColumn, null, null, null);
            cursor.moveToFirst();

            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            String filePath = cursor.getString(columnIndex);
            cursor.close();
            pathToOurFile = filePath;
            format = filePath.substring(filePath.lastIndexOf(".") + 1,
                    filePath.length());
            this.imGambar.setImageBitmap((Bitmap) data.getExtras().get(
                    "data"));

        } else if (requestCode == SELECT_FILE) {
            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]);
            String filePath = cursor.getString(columnIndex);
            cursor.close();
            pathToOurFile = filePath;
            format = filePath.substring(filePath.lastIndexOf(".") + 1,
                    filePath.length());
            this.imGambar
                    .setImageBitmap(BitmapFactory.decodeFile(filePath));
        }
    }
}

最佳答案

此方法无法正常获取请求相机 Activity 结果中的 Uri。你最好使用:

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
mImageCaptureUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); 
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
startActivityForResult(cameraIntent, CAMERA_REQUEST);

在 onActivityResult 中:

String path = mImageCaptureUri.toString();

哪里

Uri mImageCaptureUri ;

是一个全局变量。

希望对你有帮助...

关于java - 将图片从android插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20092737/

相关文章:

java - 以高性能方式处理稀疏数据

java - Quarkus 和 Keycloak : evaluate scope based permission

java - 如何构建我的出勤计划

android - Android 4.0 及以上版本的视频观看问题

java - java中的this指针

mysql - 2加入mysql之间的区别

java - jsp、连接池和mysql

android - 保持扬声器和耳机的单独音量

MySQL 查询更新除最新行之外的所有 "duplicate"行

mysql 如何将 varchar(10) 转换为 TIMESTAMP?