我有问题。我想制作文件上传器应用程序。我正在使用Intent.ACTION_GET_CONTENT从我的设备中选择任何文件。我在onActivityResult中收到了这样的文件:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case REQUEST_CHOOSER:
if (resultCode == RESULT_OK) {
final Uri uri = data.getData();
File file = FileUtils.getFile(uri);
String fileName = file.getName();
String filePath = file.getPath();
int fileSize = Integer.parseInt(String.valueOf(file.length()/1024));
tvName.setText(fileName);
tvPath.setText(filePath);
tvSize.setText(String.valueOf(fileSize) + "kB");
}
}
}
我想显示有关已选文件的用户信息。总的来说一切都很好,但是当我从图库中选择图像时:
通过意图从图库中选择图像后,有没有办法访问实际图像名称和大小?
答案 0 :(得分:1)
从图库中选择图像时,您不会获得对实际文件的引用,而是引用数据库中的行。您必须使用this answer中的Cursor检索实际文件路径。
答案 1 :(得分:1)
只需从意图中输入URI即可获取任何文件的大小
uri = data.getData();
Cursor returnCursor = getContentResolver().query(uri, null, null, null, null);
int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
int sizeIndex = returnCursor.getColumnIndex(OpenableColumns.SIZE);
returnCursor.moveToFirst();
Log.e("TAG", "Name:" + returnCursor.getString(nameIndex));
Log.e("TAG","Size: "+Long.toString(returnCursor.getLong(sizeIndex)));
我认为这会对您有所帮助。