我正在尝试从Android手机上传pdf文件到服务器。我尝试使用图像,它可以很好地处理图像。但是当试图上传pdf文件时,它给了我错误。
我正在使用eclipse API 18
我试过这个: 在列表项目上单击它打开文件资源管理器
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
int sub=subid.get(position);
Toast.makeText(getApplicationContext(),Integer.toString(sub),Toast.LENGTH_LONG).show();
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("application/pdf");
startActivityForResult(intent, 1);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
//super.onActivityResult(requestCode, resultCode, data);
String filepath;
if (resultCode==RESULT_OK) {
filepath=getRealPathFromURI_API11to18(UploadAssignment.this, data.getData());
System.out.println("File "+filepath);
}
//new Upload(UploadAssignment.this, namepath,Integer.toString(prn),sname,Integer.toString(sub)).execute();
// }
}
public static String getRealPathFromURI_API11to18(Context context, Uri contentUri) {
String[] proj = { MediaStore.Images.Media.DATA };
String result = null;
CursorLoader cursorLoader = new CursorLoader(
context,
contentUri, proj, null, null, null);
Cursor cursor = cursorLoader.loadInBackground();
if(cursor != null){
int column_index =
cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
result = cursor.getString(column_index);
}
return result;
}
这里getRealPathFromURI_API11to18()方法返回null。 我不知道为什么它给我零值。
答案 0 :(得分:1)
您正在传递集类型" application / pdf"在获取URI之后,您尝试使用 MediaStore.Images.Media.DATA 来获取RealPath,该文件仅用于获取图像路径。它不允许从您的pdf文件的URI读取路径。您可以尝试以下内容:
try{
/*Used if you want to upload file object*/
File mFile = new File(new URI(mNewPath));
/*Used if you want to read absolute path of that specific file*/
String mPath = mFile.getAbsolutePath();
}catch (Exception e){
}
答案 1 :(得分:0)
您可以浏览此链接upload file