使用base64编码(不带downloadHandler)以shiny格式下载文件
我有一个闪亮的应用程序,包括以下主要部分: ui.R使用base64编码(不带downloadHandler)以shiny格式下载文件,r,download,shiny,base64,uri,R,Download,Shiny,Base64,Uri,我有一个闪亮的应用程序,包括以下主要部分: ui.R actionButton("go", "Go") tags$a("download") observe({ if(input$go==1){ [... stuff generating a pdf file myfile.pdf ...] base64_pdf <- base64enc::dataURI(file="myfile.pdf", mime="application/pdf") updateAct
actionButton("go", "Go")
tags$a("download")
observe({
if(input$go==1){
[... stuff generating a pdf file myfile.pdf ...]
base64_pdf <- base64enc::dataURI(file="myfile.pdf", mime="application/pdf")
updateActionButton(session, "go", "Download PDF")
shinyjs::runjs(sprintf('$("#download").attr("href", "%s").attr("download", "myfile.pdf")', base64_pdf))
}
if(input$go==2){
shinyjs::runjs('$("#download")[0].click()')
}
})
server.R
actionButton("go", "Go")
tags$a("download")
observe({
if(input$go==1){
[... stuff generating a pdf file myfile.pdf ...]
base64_pdf <- base64enc::dataURI(file="myfile.pdf", mime="application/pdf")
updateActionButton(session, "go", "Download PDF")
shinyjs::runjs(sprintf('$("#download").attr("href", "%s").attr("download", "myfile.pdf")', base64_pdf))
}
if(input$go==2){
shinyjs::runjs('$("#download")[0].click()')
}
})
观察({
如果(输入$go==1){
[…生成pdf文件myfile.pdf的东西…]
base64_pdf Hmmm…最后,还有一种更简单、更好的方法,它不需要base64编码,方法是复制www
文件夹中的文件或另一个设置了addResourcePath
的资源文件夹。