Closed
Description
Hello @janpfeifer,
I just created a function that lets you send data generated in a cell as download. Maybe you want to add this somewere in your accompanion packages?
import "github.com/janpfeifer/gonb/gonbui/dom"
func Download(fileName string, data []byte, mimeType string) error {
var b bytes.Buffer
w := base64.NewEncoder(base64.StdEncoding, &b)
if _, err := w.Write(data); err != nil {
return err
}
if err := w.Close(); err != nil {
return err
}
dataURL:="data:"+mimeType+";base64,"+b.String()
dom.TransientJavascript(`var downloadLink = document.createElement('a');
downloadLink.href = '`+dataURL+`';
downloadLink.download = '`+fileName+`';
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);`)
return nil
}
func MustDownload(fileName string, data []byte, mimeType string) {
err := Download(fileName, data, mimeType)
if err != nil {
panic(err)
}
}
%%
MustDownload("example.txt", []byte("This is an example!"), "application/octet-stream")
Activity