Şu anda e-tabloyu doldurmak ve bir google sürücüye birkaç dosya yüklemek için HTML hizmetiyle appscript kullanıyorum. Bu dosyalar, URL’lerin Google Drive’daki resim bağlantıları olmadığı resimlerdir. Resim bağlantıları yalnızca google sitelerindeki dosyalarda kullanılabilir. Bu yüzden, bir google siteleri dosya dolabı sayfasındaki bir klasöre yükleme yapmak için yükleme yapmasını gerektirmem gerekiyor. Yeniden bulduğum tüm bilgiler: google sitelere eklenen ekler ilgimi çekmediğim UI uygulamasını kullanıyor. HTML servisini kullanmak istiyorum. İşte tam fonksiyonel olan ne var:Google sitesine eki yüklemek için Google Appscript/HTML hizmetini kullanma
Sunucu .gs
var dropBoxId = "blablahbalh"; // Drive ID of 'dropbox' folder
var logSheetId = "blahblahbalh"; // Drive ID of log spreadsheet
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('myForm.html');
}
function uploadFiles(formObject) {
try {
// Create a file in Drive from the one provided in the form
var folder = DriveApp.getFolderById(dropBoxId);
var blob = formObject.myFile;
var blob2 = formObject.myFile2;
var file = folder.createFile(blob);
var file2 = folder.createFile(blob2);
file.setDescription("Uploaded by " + formObject.myName);
// Open the log and record the new file name, URL and name from form
var ss = SpreadsheetApp.openById(logSheetId);
var sheet = ss.getSheets()[0];
sheet.appendRow([file.getName(), file.getUrl(), file2.getName(),
file2.getUrl(), formObject.myName, formObject.actor_unions, formObject.actor_email, formObject.actor_phone, formObject.actor_website]);
// Return the new file Drive URL so it can be put in the web app output
return file.getUrl();
} catch (error) {
return error.toString();
}
}
HTML üzerinde belirli bir klasöre ek iliştirmek için hiçbir yol yoktur
<form id="myForm">
<input type="text" name="myName" placeholder="Your full name..."/>
<input type="text" name="actor_unions" placeholder="Union affiliations..."/>
<input type="text" name="actor_email" placeholder="email Address..."/>
<input type="text" name="actor_phone" placeholder="phone number..."/>
<input type="text" name="actor_website" placeholder="Website..."/>
<input name="myFile" type="file" />
<input name="myFile2" type="file" />
<input type="button" value="Submit"
onclick="google.script.run
.withSuccessHandler(updateUrl)
.withFailureHandler(onFailure)
.uploadFiles(this.parentNode)" />
</form>
<div id="output"></div>
<script>
function updateUrl(url) {
var div = document.getElementById('output');
div.innerHTML = '<a href="' + url + '">Upload successful!</a>';
}
function onFailure(error) {
alert(error.message);
}
</script>
<style>
input { display:block; margin: 20px; }
</style>
Merhaba, hoş geldiniz. Sorunuzun daha görünür olmasını sağlamak için lütfen [değiştir] ve ilgili dil etiketlerini ekleyin (HTML ve bence Javascript). Teşekkür ederim! –
Geri bildirim için teşekkürler. Sözlüğe en uygun etiketleri kullandım, çünkü dile özgü sözdizimi ve Google özel işlevleriyle daha fazla ilgisi var. –
Sandy girişiniz için teşekkürler. Evet, ona baktım, başka bir kaynağın bağlantısı olan bir ek oluşturmak için bilgi gönderdiniz. Dosyaları yükleyebilmek için bir html formu kullanmalı ve yüklenen dosyaların URL'sini diğer bilgilerle birlikte bir e-tabloya yazmam gerekir. –