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);
使用此代码我上传文件,但该文件作为文档上传。 意味着我上传任何类型的文件作为文档上传到谷歌驱动器
答案 0 :(得分:3)
据我所知(自从我看了几个月以来),google驱动API已经不支持。 作为解决方法,请考虑安装本机google驱动器共享,并将要上载的文件写入本地映射的共享文件夹。然后它的谷歌驱动器问题来处理上传。
答案 1 :(得分:2)
可以为您提供指导
<input id="file-pdf" type="file" name="file-pdf">
<button id="submit-pdf">submit</button>
// Javascript角
$("#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 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;
}
}
答案 2 :(得分:2)
我知道这个问题已经很老了,但是现在谷歌已经正式支持Java drive api,有一个快速的示例可以开始将Drive API与java应用程序集成。 从here
下载驱动器API客户端jar文件如果您是从Java SE开发应用程序,请不要忘记将servlet api.jar放在类路径上,否则最终会出现很多错误。