【发布时间】:2015-04-14 15:55:54
【问题描述】:
我正在使用下面的代码将大文件上传到 Google 云端硬盘。如何将进度显示为数字百分比?
我不想显示进度条,只显示“20%”之类的百分比。
server.gs
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('upload.html');
}
function uploadFiles(form) {
try {
var dropbox = "uploads";
var folder, folders = DriveApp.getFoldersByName(dropbox);
if (folders.hasNext()) {
folder = folders.next();
} else {
folder = DriveApp.createFolder(dropbox);
}
var blob = form.myFile;
var file = folder.createFile(blob);
file.setDescription("VideoName_Number: " + form.myName);
return "Episode uploaded successfully " + file.getUrl();
} catch (error) {
return error.toString();
}
}
上传.html
<div>
<form id="myForm">
<input type="text" name="myName" placeholder="VideoName_Number">
<input type="file" name="myFile">
<input type="submit" value="Upload Anime"
onclick="this.value='Uploading..';
google.script.run.withSuccessHandler(fileUploaded)
.uploadFiles(this.parentNode);
return false;">
</form>
<div id="output"></div>
<script>
function fileUploaded(status) {
document.getElementById('myForm').style.display = 'none';
document.getElementById('output').innerHTML = status;
}
</script>
<style>
input { display:block; margin: 20px; }
</style>
</div>
【问题讨论】:
-
谢谢,有用,^^,不,它是重复的,因为它不是多次使用 chuncs,它一个文件一个上传,完全不同的系统,但我现在尝试它可能更好&&
-
developers.google.com/drive/web/manage-uploads#resumable 确实是答案。您需要自己对文件进行分块,并在每个分块后碰撞进度指示器。例如。您的文件为 10MB:将其分成 10 x 1MB 块,上传每个块后,将 10% 添加到您的进度计数器。
-
@pinoyyid,我已经做到了,但是使用php客户端库,在文件完成上传之前无法获取块状态,请您看一下:@ 987654323@
-
不要使用库。直接调用rest就行了。这很容易
标签: javascript php google-drive-api