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

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); 

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

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

可以指导你这个

   

// Java脚本

 $("#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"); } } }); }); 

对于servlet 这里保存到驱动器的function

  //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; } } 

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

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