使用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放在类路径上,否则最终会出现很多错误。