用于上传到Google云端硬盘的文件选择器

时间:2018-01-09 05:32:45

标签: java android google-api uploading filepicker

我正在了解Google Api在Android上传文件,并找到了关于它的好样本。(您可以在此处查看该示例: https://github.com/sdivakarrajesh/Uploading-Files-to-Google-drive-using-java-client-api-in-Android/blob/master/app/src/main/java/com/dev/theblueorb/usingdrivejavaapi/DriveActivity.java)  但是,它只显示如何上传文件,而不是如何选择文件并将其上传到GG驱动器。以下是在GG驱动器上上传和创建文件夹的代码:

private void uploadFile() throws IOException {
        File fileMetadata = new File();;
        fileMetadata.setName("Sample File");
        fileMetadata.setMimeType("application/vnd.google-apps.spreadsheet");

        // For mime type of specific file visit Drive Doucumentation

        file2 = new java.io.File(path);
        InputStream inputStream = getResources().openRawResource(R.raw.template);
        try {
            FileUtils.copyInputStreamToFile(inputStream,file2);
        } catch (IOException e) {
            e.printStackTrace();
        }

        FileContent mediaContent = new FileContent("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",file2);


        File file = mService.files().create(fileMetadata, mediaContent)
                .setFields("id")
                .execute();


        Log.e(this.toString(),"File Created with ID:"+ file.getId());

        Toast.makeText(getApplicationContext(),
                "File created:"+file.getId() , Toast.LENGTH_SHORT).show();
    }


}




private void createFolderInDrive() throws IOException {
        File fileMetadata = new File();
        fileMetadata.setName("Sample Folder");
        fileMetadata.setMimeType("application/vnd.google-apps.folder");

        File file = mService.files().create(fileMetadata)
                .setFields("id")
                .execute();
        System.out.println("Folder ID: " + file.getId());

        Log.e(this.toString(),"Folder Created with ID:"+ file.getId());
        Toast.makeText(getApplicationContext(),
                "Folder created:"+file.getId() , Toast.LENGTH_SHORT).show();
    }

任何机构都知道如何在设备上选择文件,然后将其上传到GG驱动器上的选定文件夹或样本?

1 个答案:

答案 0 :(得分:0)

Referencing these docs用于基本文件上传,您应该能够通过在下面的这一行中将完整文件路径指定为fileName来“在设备上选择文件”:

java.io.File fileContent = new java.io.File(filename);

例如,如果您在coolpic目录中有一个名为media的文件,则media/coolpic可以使用filename。我参考的下一个文档强化了这一策略。路径将取决于您可以轻松调查的根位置。

然后,查看this doc for working with folders in Google Drive。您需要找到文件夹ID并使用

在上传时设置此ID

fileMetadata.setParents(Collections.singletonList(folderId));

注意您可以上传,然后分两步移动,或者使用上面的方法并在上传时设置文件夹。