从imageviews获取捕获图像的路径并上传到服务器

时间:2017-11-20 12:02:13

标签: android file-upload camera android-imageview

我的屏幕上有四个图像视图,从相机中捕获图像并显示在其中,现在我想将这些图像上传到服务器中。所以我使用下面的代码来获取这些代码的路径,但它是通过异常。是否有可能从图像视图将图像上传到服务器,从相机捕获(不将图像存储到存储器中)。

         if (requestCode == 1&& resultCode == RESULT_OK)
                {
                    Bitmap photo = (Bitmap) data.getExtras().get("data");
                    purchase_Img_1.setImageBitmap(photo);
                    Uri tempUri = getImageUri(getApplicationContext(), photo);
                    File finalFile = new File(getRealPathFromURI(tempUri));

                }

    public Uri getImageUri(Context inContext, Bitmap inImage) {
        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
        String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
        return Uri.parse(path);
    }

public String getRealPathFromURI(Uri uri) {
    Cursor cursor = getContentResolver().query(uri, null, null, null, null);
    cursor.moveToFirst();
    int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
    return cursor.getString(idx);
}

2 个答案:

答案 0 :(得分:1)

Getting path of captured image from imageviews 

没有路径。没有路径。您获得了位图并将其放置在视图中。

Uri tempUri = getImageUri(getApplicationContext(), photo);

这里使用MediaStore存储了一个位图。你找回了一个uri。

您可以打开该uri的输入流,从中读取并上传字节。

但是使用MediaStore后,您将位图保存到文件中。如果您不希望更好地将位图压缩为ByteArrayOutputStream并上传生成的字节数组。

答案 1 :(得分:0)

摆脱大部分代码。使用Bitmapcompress()保存到文件中。现在您知道文件的位置,并可以将其用于服务器上载过程。