嗨,我徘徊做一些更美丽的可搜索和可靠的文件列表在我的驱动器。如何获取文件下载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