嗨,我徘徊做一些更美麗的可搜索和可靠的文件列表在我的驅動器。如何獲取文件下載url
我做了一個fileVar.getDownloadUrl()
但是當我打印到HTML的鏈接不存在。 我使用Logger.log()進行檢查,並且URL不記錄。
getUrl()確實可行,購買我也需要下載。
¿一些想法?
代碼.GS
function getRecFol(folId){
var l = [];
var fol = DriveApp.getFolderById(folId);
var arch = fol.getFiles();
while (arch.hasNext()){
var a = arch.next();
//Logger.log(a.getId());
l.push(a.getId());
}// fin primera parte
//segunda parte.
//Logger.log(resultado);
var fols = fol.getFolders();
var l2 = [];
while (fols.hasNext()){
var a = fols.next();
//Logger.log('folder:');
//Logger.log(a);
var b = getRecFol(a.getId());
for (var i = 0;i < b.length;i++){
l2.push(b[i]);
}
}
for (var i = 0;i < l2.length;i++){
l.push(l2[i]);
}
// Logger.log(resultado !=[]);
return l;
}
/* TIPO PARA EL OBJETO CON LA INFORMACION PARA EL HTML */
function listedFile(id,title,tipe,description,fold,update,vision,descarga){
this.id = id;
this.title = title;
this.tipe = tipe;
this.description = description;
this.fold = fold;
this.update = update;
this.descarga = descarga;
this.vision = vision;
}
function getData(){
var listaF = getRecFol('IdFolder');
var listaO = [];
for (var i = 0; i < listaF.length ;i++){
var f = DriveApp.getFileById(listaF[i]);
f.getDownloadUrl();
var o = new listedFile(listaF[i],f.getName(),f.getMimeType(),f.getDescription(),f.getParents(),f.getLastUpdated(),f.getUrl(),f.getDownloadUrl());
Logger.log(o.description);
listaO.push(o);
}
return listaO;
}
function doGet(){
return HtmlService
.createTemplateFromFile('index')
.evaluate();
};
HTML
<html>
<body>
Hello, world!
<ol>
<? var lista = getData();
for (var i = 0; i < lista.length; i++){ ?>
<li>
<a href="<?= lista[i].descarga ?>"><?= lista[i].title ?></a> - <a href="<?= lista[i].vision ?>"> VER </a>
</li>
<ul>
<li><?= lista[i].description ?></li>
</ul>
<? } ?>
</ol>
</body>
</html>
非常感謝您,現在我可以在腳本中創建一個條件:如果沒有下載url,請使用'.getUrl()'返回的內容。我會在我寫的時候更新。 – OlegarioFuentes
這將是一個很好的解決方案,我想...(thx爲upvote,請考慮也接受它) –
我'getRecFol'功能可能是一團糟,但它不僅需要文件夾內的文件,也需要內部文件夾中的所有文件。 – OlegarioFuentes