【问题标题】:how to get a real path of PDF file in android如何在android中获取PDF文件的真实路径
【发布时间】:2017-11-28 05:10:19
【问题描述】:

我们想从图库中使用意图选择一个 pdf 文件,那么如何获得 pdf 文件的真实路径。我们想从图库中选择一个 PDF 文件并将该文件上传到服务器上。

【问题讨论】:

    标签: android filechooser


    【解决方案1】:
    public String getPathFromURI(Context context, Uri contentUri) {
    if ( contentUri.toString().indexOf("file:///") > -1 ){
        return contentUri.getPath();
    }
    
    Cursor cursor = null;
    try { 
        String[] proj = { MediaStore.Images.Media.DATA };
        cursor = context.getContentResolver().query(contentUri,  proj, null, null, null);
        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    }finally {
          if (cursor != null) {
              cursor.close();
          }
    }
    

    }

    【讨论】:

      【解决方案2】:

      您好,这里是从外部存储中选择 pdf 文件并获取文件路径的示例代码,您可以使用该路径访问文件数据并在服务器上上传数据。

      这里 PICK_IMAGE 是您想要作为请求代码的任何数字。

                       Intent intent = new Intent();
                          intent.setType("application/pdf");
                          intent.setAction(Intent.ACTION_GET_CONTENT);
                          startActivityForResult(Intent.createChooser(intent, "Select File"),PICK_IMAGE);
      
       public void onActivityResult(int requestCode, int resultCode, final Intent data) {
          super.onActivityResult(requestCode, resultCode, data);
      
      
          if (requestCode == PICK_IMAGE) {
      
              try {
      
                  Uri uri1 = data.getData();
                  String path = String.valueOf(uri1);
                  String path_lastPart = path.substring(path.indexOf("/storage"));
      
      
                  if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
                      // Do the file write
      
                      path_lastPart = path_lastPart.replace("%20", " ");
                      File yourFile = new File(path_lastPart);
      
      
                  } else {
                      // Request permission from the user
      
                     ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0);
                  }
      
              } catch (Exception e2) {
      
                  Log.e("macro", "" + e2);
              }
          }
      
      
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-08-18
        • 2020-02-05
        • 2019-05-27
        • 1970-01-01
        • 2013-07-06
        • 1970-01-01
        • 2019-03-08
        相关资源
        最近更新 更多