java 使用java api将文件上传到谷歌驱动器

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/16235399/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-31 22:19:47  来源:igfitidea点击:

upload file into google drive using java api

javagoogle-drive-api

提问by Renish Khunt

DocsService client = new DocsService("service name");
client.setUserCredentials(username,password);
File file = new File(filename);
URL url = new URL("https://docs.google.com/feeds/default/private/full/?ocr=true&convert=true");
String mimeType =     DocumentListEntry.MediaType.fromFileName(file.getName()).getMimeType();
DocumentEntry newDocument = new DocumentEntry();
newDocument.setTitle(new PlainTextConstruct(file.getName()));
newDocument.setMediaSource(new MediaFileSource(file, mimeType));
//newDocument.setFile(file, mimeType);
newDocument = client.insert(url, newDocument);
System.out.println("uploaded "+file.getName());
JOptionPane.showMessageDialog(null, "uploaded "+file.getName(), "alert", JOptionPane.ERROR_MESSAGE);

using this code i upload file but that file is upload as a document. means i upload any type of that file is upload as a document in to google drive

使用此代码我上传文件,但该文件作为文档上传。意味着我上传任何类型的文件作为文档上传到谷歌驱动器

回答by Durandal

As far as I know (its been a few month since I looked) this is not (yet?) supportedby the google drive API. As a workaround consider installing the native google drive share and write the files you want to upload into the locally mapped shared folder. Then its google drives problem to handle the upload.

据我所知(自从我看了几个月以来)这不是(还?)谷歌驱动器 API支持的。作为一种解决方法,请考虑安装本机 google 驱动器共享并将要上传的文件写入本地映射的共享文件夹。然后它的谷歌驱动器问题来处理上传。

回答by Edy Aguirre

can guide you with this

可以指导你这个

<input id="file-pdf" type="file" name="file-pdf"> 
<button id="submit-pdf">submit</button>

//javascripts

//javascripts

$("#submit-pdf").click(function() {
var inputFileImage = document.getElementById("file-pdf");
var file = inputFileImage.files[0];
var data = new FormData();
data.append("file-pdf",file);
$.ajax({
url:   "uploadpdf",
type:  'POST',
cache : false,
data : data,
processData : false,
contentType : false,
dataType: "json",       
success:  function (response) {        
   if(response.success){
      console.log("ok");
   }else{
       console.log("fail");
   }

}
});    
});

for servlet herefunction to save to drive

servlet here函数保存到驱动器

 //parentId  ID folder drive
 public static File insertFile(GoogleCredential credential,String title, String parentId, String mimeType, String filename, InputStream stream) {

    try {
             Drive driveService = new Drive.Builder(httpTransport, jsonFactory, null).setApplicationName("DRIVE_TEST").setHttpRequestInitializer(credential).build();

            // File's metadata.
            File body = new File();
            body.setTitle(title);
            body.setMimeType(mimeType);

            // Set the parent folder.
            if (parentId != null && parentId.length() > 0) {
              body.setParents(
                  Arrays.asList(new ParentReference().setId(parentId)));
            }

            // File's content.
            InputStreamContent mediaContent = new InputStreamContent(mimeType, new BufferedInputStream(stream));  
            try {
              File file = driveService.files().insert(body, mediaContent).execute();

              return file;
            } catch (IOException e) {
              logger.log(Level.WARNING, "un error en drive service: "+ e);
              return null;
            }

    } catch (IOException e1) {
           // TODO Auto-generated catch block
           e1.printStackTrace();
           return null;
    }

  }

回答by Shersha Fn

I know this question is quite old ,but now google has official support for Java drive api,there is a quick sample to start integrating Drive API with java application. Download drive API client jar files from here

我知道这个问题已经很老了,但现在谷歌官方支持Java drive api,有一个快速示例可以开始将 Drive API 与 java 应用程序集成。从这里下载驱动 API 客户端 jar 文件

and if you are developing your application from Java SE don't forget to put servlet api.jar on class path or else you will end up with lot of errors.

如果您正在从 Java SE 开发您的应用程序,请不要忘记将 servlet api.jar 放在类路径上,否则您最终会遇到很多错误。