【发布时间】:2016-03-20 09:41:09
【问题描述】:
我正在尝试将 pdf 文件从 android mobile 上传到服务器。我尝试使用图像,它适用于图像。但是当尝试上传 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。 我不知道为什么它给了我空值。
【问题讨论】:
-
此内容可确保您仅浏览图像文件。用户 MediaStore.Images.Media.DATA MediaStore.Files 浏览 pdfs
-
@Honza Musil 我们应该使用什么来上传 pdf。文件。