从android上传pdf到服务器

时间:2016-03-20 09:41:10

标签: android pdf upload

我正在尝试从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。 我不知道为什么它给我零值。

2 个答案:

答案 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