Reputation: 99
I just need to covert the path in file to InputStream here is my code. I select the path by calling Intent but it always gives me filenotfoundexception
Intent intent = new Intent();
intent.setType("*/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Complete action using"), PICK_FROM_FILE);
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_FROM_FILE && resultCode == RESULT_OK) {
File file = new File(Environment.getExternalStorageDirectory(), data.getData().toString());
Uri path = Uri.fromFile(file);
File fpath=new File(path.toString());
try {
InputStream myfile=new FileInputStream(fpath);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
thanks for help in advance...
Upvotes: 0
Views: 119
Reputation: 2734
Intent intent = new Intent();
intent.setType("image/*");
//intent.setAction(Intent.ACTION_OPEN_DOCUMENT);
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == getActivity(). RESULT_OK && data != null && data.getData() != null) {
Uri filePath = data.getData();
try {
//Getting the Bitmap from Gallery
bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), filePath);
//Setting the Bitmap to ImageView
Glide.with(getActivity()).load(filePath).asBitmap().placeholder(R.drawable.ic_launcher).into(avatarContainer);
//avatarContainer.setImageBitmap(bitmap);
//uploadFile(filePath.getPath());
try {
uploadFile(getPath(filePath));
} catch (Exception e) {
Config.displayToast("Please Select Image From Gallary");
alertDialog.dismiss();
ServerRequest.dismissDialogBox(context);
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}else if (requestCode == CAMERA_CAPTURE_IMAGE_REQUEST_CODE && resultCode == getActivity() .RESULT_OK){
String filepath = fileUri.getPath();
Log.d("Filepath is",""+filepath);
BitmapFactory.Options options = new BitmapFactory.Options();
// down sizing image as it throws OutOfMemory Exception for larger
// images
options.inSampleSize = 8;
final Bitmap bitmap = BitmapFactory.decodeFile(filepath, options);
//avatarContainer.setImageBitmap(bitmap);
Glide.with(getActivity()).load(filepath).asBitmap().placeholder(R.drawable.ic_launcher).into(avatarContainer);
uploadFile(filepath);
}
}
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
@SuppressWarnings("deprecation")
Cursor cursor = getActivity().managedQuery(uri, projection, null, null, null);
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
Upvotes: 0
Reputation: 254
try this:
Uri uri = data.getData();
ContentResolver cr = this.getContentResolver();
try {
InputStream myfile=cr.openInputStream(uri));;
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Upvotes: 2