안녕하세요 저는 드라이브에서 좀 더 아름답고 검색 가능하고 안정적인 파일 목록을 만들기 위해 방황하고 있습니다.파일 다운로드 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
그건 좋은 해결책이 될 것 같아요 ... (upvote에 대한 thx, 그것을 받아 들일 수도 고려하시기 바랍니다) –
내'getRecFol' 함수는 어쩌면 엉망이지만 폴더 안의 파일뿐만 아니라 내부 폴더의 모든 파일 . – OlegarioFuentes