我可以使用任何网址直接上传到Google云端硬盘吗?例如,我的服务器上有一个文件http://example.com/file.doc,我希望将其上传到Google云端硬盘,例如:http://google.com/?upload=http://example.com/file.doc
这样做的方法是什么?
Tan*_*ike 13
这个解决方法怎么样?遗憾的是,没有在Google API上未经授权直接上传文件的网址.所以我建议一个解决方法.我认为这种方法可能很容易实现你想做的事情.请将此视为几个答案之一.
我认为使用Web Apps,您可以实现您想要做的事情.此解决方法的流程如下.
请跑doGet(e).这样,虽然发生了错误,但可以完成授权过程.
function doGet(e) {
var blob = UrlFetchApp.fetch(e.parameters.url).getBlob();
var id = DriveApp.createFile(blob).getId();
return ContentService.createTextOutput(id);
}
Run Code Online (Sandbox Code Playgroud)
https://script.google.com/macros/s/#####/exec.
url=http://example.com/file.doc.file.doc访问此URL https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc进行上传.
如果这对你没用,我很抱歉.
我知道你想使用php和javascript从URL上传文件(我在这里使用了jQuery.).如果我的理解有误,请告诉我.doGet(e)使用这些脚本需要使用Google Apps脚本.首先,请复制并粘贴doGet(e)和部署Web应用程序.对于这两个脚本,Google Drive上创建的文件的文件ID将作为响应返回.
<?php
$url = 'https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl,CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($curl);
echo $response;
curl_close($curl);
?>
Run Code Online (Sandbox Code Playgroud)
$.get("https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc", function(res) {
console.log(res);
});
Run Code Online (Sandbox Code Playgroud)
如果您希望用户将文件上传到自己的Google云端硬盘,请按以下流程部署Web Apps.
请跑doGet(e).这样,虽然发生了错误,但可以完成授权过程.
function doGet(e) {
var blob = UrlFetchApp.fetch(e.parameters.url).getBlob();
var id = DriveApp.createFile(blob).getId();
return ContentService.createTextOutput(id);
}
Run Code Online (Sandbox Code Playgroud)
https://script.google.com/macros/s/#####/exec.
url=http://example.com/file.doc.file.doc访问此URL https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc进行上传.
https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc,将显示Google的登录屏幕.file.doc上传到用户的Google云端硬盘.因为脚本是作为每个用户运行的.https://script.google.com/macros/s/#####/exec?url=http://example.com/file.doc作为链接.在使用Web Apps的情况下,使用何时<div class="google-upload" data-url="http://example.com/file.doc">,示例脚本如下.
用户点击时Upload,file.doc会上传到用户的云端硬盘.要使用此示例脚本,请使用上面"编辑2"部署Web Apps检索到的URL.
在这种情况下,向每个用户显示登录屏幕.用户需要在登录后授权使用API,方法是单击屏幕上的按钮.这是你想要的吗?
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.js"></script>
</head>
<body>
<div class="google-upload" data-url="http://example.com/file.doc">
<span style="background-color: #ddd">Upload</span>
</div>
<script>
$(function() {
$(".google-upload").click(function() {
var url = "https://script.google.com/macros/s/#####/exec"; // Please input the URL here.
var withQuery = url + "?url=";
window.open(withQuery + $('.google-upload').attr("data-url"), "_blank", "width=600,height=600,scrollbars=1");
});
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9269 次 |
| 最近记录: |