假设out.zip我的闪亮应用程序中有一个现有的zip文件()(即位于服务器上).我想让用户能够下载此文件.这个问题很相似,这一个.但是,该问题会downloadHandler压缩文件,而zip文件已存在于我的情况下.
library(shiny)
app <- list(
ui = fluidPage(
titlePanel(""),
sidebarLayout(
sidebarPanel(
downloadButton("downloadData", label = "Download")
),
mainPanel(h6("Sample download", align = "center"))
)
),
server = function(input, output) {
output$downloadData <- downloadHandler(
filename <- function() {
paste("output", "zip", sep=".")
},
content <- function(file) {
# not sure what to put here???
},
contentType = "application/zip"
)
}
)
shiny::runApp(app)
Run Code Online (Sandbox Code Playgroud)
cde*_*man 42
在探索了不同的文件处理函数后,我发现file.copy可以用来下载文件.
我downloadHandler改为:
output$downloadData <- downloadHandler(
filename <- function() {
paste("output", "zip", sep=".")
},
content <- function(file) {
file.copy("out.zip", file)
},
contentType = "application/zip"
)
Run Code Online (Sandbox Code Playgroud)
Mar*_*keD 16
几年后,但我认为如果您不需要动态文件生成,则有一种更简单的方法:将文件放在www/Shiny 应用程序的文件夹中:
|
|- app.R
|- www/
- downloadme.csv
Run Code Online (Sandbox Code Playgroud)
然后,当您的 Shiny 应用程序上线时,该文件在shiny-url.com/downloadme.csv- 或在本地测试时可用127.0.0.1:1221/downloadme.csv
例如在你的 Shiny ui 中使用:
|
|- app.R
|- www/
- downloadme.csv
Run Code Online (Sandbox Code Playgroud)