Como permitir que um usuário baixe um arquivo no Fable?

Jan 16 2021

Eu tenho um aplicativo SAFE stack. Preciso permitir que os usuários façam upload e download de arquivos.

Upload de trabalhos usando

Browser.Dom.FileReader.Create()

Existe uma maneira correspondente de permitir que os usuários baixem arquivos?

Esta resposta oferece uma solução usando um mecanismo completamente diferente que depende de uma biblioteca js. Não há mecanismo que corresponda à FileReaderabordagem?

Respostas

1 ChechyLevas Jan 16 2021 at 20:23

Eu vim com o seguinte que parece funcionar para mim.

let downLoad fileName fileContent =
    let anchor = Browser.Dom.document.createElement "a"
    let encodedContent = fileContent |> sprintf "data:text/plain;charset=utf-8,%s" |> Fable.Core.JS.encodeURI
    anchor.setAttribute("href",  encodedContent)
    anchor.setAttribute("download", fileName)
    anchor.click()