在下面的代码中,file.length()总是给出0.我在我的Android应用程序中从uploader获取文件。我也设置了所有文件权限和Internet权限,但仍无法获取文件的长度,因此无法转换为Base64并将其传递给我的webserive,使用Base64_decode对其进行解码并将文件保存在文件夹中。
try {
Uri uri = data.getData();
Log.d("mypath",uri+"");
File file = new File(uri.getPath());
Log.d("Tn1",file.length()+"");
//int size = Integer.parseInt(String.valueOf(file.length()/1024));
int size = (int)file.length();
byte[] bytes = new byte[size];
//byte[] bytes = loadFile(file);
Log.d("mysize",size+"Pr");
String encode = Base64.encodeBytes(bytes);
//Log.d("Tn2",encode);
String fileExtension
= MimeTypeMap.getFileExtensionFromUrl(uri.toString());
Log.d("Tn",fileExtension);
String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(fileExtension);
int indexStart = mimeType.indexOf("/");
mimeType = mimeType.substring(indexStart+1);
Log.d("minePrakhar", mimeType);
if(mimeType.equalsIgnoreCase("doc")
|| mimeType.equalsIgnoreCase("pdf")
|| mimeType.equalsIgnoreCase("msexcel")
|| mimeType.equalsIgnoreCase("vnd.openxmlformats-officedocument.wordprocessingml.document")
|| mimeType.equalsIgnoreCase("vnd.openxmlformats-officedocument.spreadsheetml.sheet"))
{
new RetrieveFeedTask(encode, mimeType, file.getName()).execute();
db.storeMessage(to_id, from_id + "", file.getName() + "", "file", localTime, "F", "ST", "R", "");
chatItems.clear();
dataFromDB();
}else{
Toast.makeText(TestChat.this, "File Format is not Supported1", Toast.LENGTH_SHORT).show();
}
}catch (Exception e)`enter code here`{
Log.e("minePrakhar123",e.getMessage());
Toast.makeText(TestChat.this, "File Format is not Supported2", Toast.LENGTH_SHORT).show();
}