google-apps-script - 从我的 html 以 Google Script 格式上传文件
问题描述
我只想从我的外部 html(localhost) 上传文件,然后上传到 Google Drive,或者我怎样才能获得最后上传文件的链接到我的 php 或 html。抱歉我的英语不好,我希望你能理解我的问题,但这对我们的项目来说是个大问题。任何反馈都会对我们有很大帮助。谢谢!
这是我来自 Code.gs 的代码
var html = HtmlService.createHtmlOutputFromFile('index');
return html.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}
function uploadFiles(data)
{
var file = data.myFiles;
var myfolder = checkFolder();
var folder = DriveApp.getFolderById(myfolder);
var createFile = folder.createFile(file);
return createFile.getUrl();
}
function checkFolder()
{
var folder = DriveApp.searchFolders("title contains 'QCU LMS'");
if(folder.hasNext()){
var folderId = folder.next().getId();
Logger.log(folderId);
return folderId;
}else{
Logger.log("No QCU LMS Folder Found.");
var folders = DriveApp.createFolder("QCU LMS");
folders.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT);
return folders.getId();
}
}
这是我的 index.html 代码
<html>
<head>
<base target="_top">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
<style>
.buttonload {
background-color: #4CAF50; /* Green background */
border: none; /* Remove borders */
color: white; /* White text */
padding: 12px 24px; /* Some padding */
font-size: 16px; /* Set a font-size */
}
/* Add a right margin to each icon */
.fa {
margin-left: -12px;
margin-right: 8px;
}
</style>
</head>
<body>
<h1>Upload Files</h1>
<form>
<input type="file" id="myFiles" name="myFiles" required>
<br>
</br>
<input type="button" id="submitBtn" value="Upload Files" class="buttonload">
<a href="https://www.facebook.com/" id="resp" target="_blank"></a>
<div id="mySrc">
<input type="text" id="resps">
</div>
<div id="myDIV">
<button class="buttonload">
<i class="fa fa-circle-o-notch fa-spin"></i>Uploading...
</button>
</div>
</form>
<script>
var x = document.getElementById("myDIV");
var y = document.getElementById("submitBtn");
x.style.display = "none";
document.getElementById('submitBtn').addEventListener('click',
function(e){
google.script.run.withSuccessHandler(onSuccess).uploadFiles(this.parentNode);
x.style.display = "block";
y.style.display = "none";
})
function onSuccess(data){
document.getElementById('resp').href = data;
document.getElementById('resps').value = data;
document.getElementById('resp').innerHTML = "Uploaded Check Here";
x.style.display = "none";
y.style.display = "inline-block";
}
</script>
</body>
</html>
解决方案
推荐阅读
- servicestack - ServiceStack.OrmLite:类名出现在不同命名空间时的表冲突
- sql-server - MSSQL 存储过程帮助比较日期
- java - 僵尸异常幸免于难
- c - 具有不同目录的 C makefile
- ruby-on-rails - Rails send_file 文件名 utf-8 在 Internet Explorer 中损坏
- c# - C#如何使一个对象在另一个类中可见
- html - 什么语言的 CSS 会减少我使用的代码量?
- docker - 构建 docker 映像而不生成中间“无”映像
- node.js - Node Sass 还不支持你当前的环境:Linux Unsupported architecture (arm) with Node.js 8.x
- promise - Promise 不等待 FTP 流上的解析