将google drive pdf上传到服务器

时间:2017-02-13 06:44:45

标签: android file pdf retrofit2

我想将pdf上传到我的服务器。为此我想让用户从他们的本地设备以及谷歌驱动器中选择文件

如果用户从他们的设备中选择文件,那么我就会喜欢 内容://com.android.providers.downloads.documents/document/5447 但是当用户从他们的谷歌驱动器中选择文件然后我得到uri喜欢 内容://com.google.android.apps.docs.storage/document/acc%3D1%3Bdoc%3D10324 我无法将此uri转换为文件

选择文件的代码

  private void showFileChooser() {
    Intent intent = new Intent();    
    intent.setType("application/pdf");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    startActivityForResult(Intent.createChooser(intent,"Choose File to Upload.."),PICK_FILE_REQUEST);
}

创建多部分的代码

public MultipartBody.Part GetMultiPartCV(Uri uri){

    if (uri!= null) {
        File file = FileUtils.getFile(this, uri);

        RequestBody requestFile = RequestBody.create(MediaType.parse(getContentResolver().getType(uri)), file);

        return MultipartBody.Part.createFormData("file", file.getPath(), requestFile);
    } else {
        return null;
    }
}

当我从下载文件夹上传时,它完美地工作,因为我能够将uri转换为文件,但是当我从谷歌驱动器中选择filr时,我无法将uri转换为文件,因此它给了我空指针异常。

0 个答案:

没有答案