In meiner gsp Ansicht, ich habe diesen Code:Wie erzwinge Grals zum Herunterladen von CSV-Dateien?
<g:each in="${fileResourceInstanceList}" status="i" var="fileResourceInstance">
<tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
<td>${fileResourceInstance.decodeURL()}</td>
<td><a href="${createLinkTo(dir:"/upload_data/datasets/ds"+signalDataInstance.datasetID , file: fileResourceInstance.decodeURL(), absolute:true)}" target="_new">view</a></td>
<td><g:link action="deleteFile" id="${fileResourceInstance.replace('.','###')}" params="[rs:signalDataInstance.datasetID]" onclick="return confirm('Are you sure?');"> delete </g:link></td>
</tr>
</g:each>
Ich mag meine csv-Dateien herunterladen und nicht meine CSV-Dateien in meinem Browser lesen!
Wie erzwinge ich den Download?
Hier Codeteil in meinem Controller:
def f = new File("${linkDir}".toString())
if(f.exists()){
f.eachFile(){ file->
if(!file.isDirectory())
fileResourceInstanceList.add(file.name)
}
}
Wo dieser Teil in meinem Code hinzufügen Download zu erzwingen? :
response.setHeader("Content-disposition", "attachment; filename=" + file.name + ".csv");
render(contentType: "text/csv", text: file.name.toString());
I‘ m Parsing von Dateien aus einem Ordner, fügen Sie hinzu Dateiname in der Liste "fileResourceInstanceList". Aus meiner Sicht füge ich für jede fileResourceInstanceList einen Link zu csv-Dateien hinzu. Export-Plugin funktioniert mit Domain-Klasse, ich bin mir nicht sicher, ob ich dieses nützliche Plugin verwenden kann? –
hmm, wahrscheinlich nicht in diesem fall, zumindest nicht ohne änderungen. –