我无法制作闪亮的downloadHandler输出zip文件:
# server.R
library(shiny)
shinyServer(function(input, output) {
output$downloadData <- downloadHandler(
filename <- function() {
paste("output", "zip", sep=".")
},
content <- function(fname) {
fs <- c()
tmpdir <- tempdir()
setwd(tempdir())
for (i in c(1,2,3,4,5)) {
path <- paste0("sample_", i, ".csv")
fs <- c(fs, path)
write(i*2, path)
}
zip(zipfile=fname, files=fs)
}
)
})
Run Code Online (Sandbox Code Playgroud)
而且很简单ui.R:
shinyUI(fluidPage(
titlePanel(""),
sidebarLayout(
sidebarPanel(
downloadButton("downloadData", label = "Download")
),
mainPanel(h6("Sample download", align = "center"))
)
))
Run Code Online (Sandbox Code Playgroud)
我有很好的输出,除了错误:
> shiny::runApp('C:/Users/user/AppData/Local/Temp/test')
Listening on http://127.0.0.1:7280
adding: sample_1.csv …Run Code Online (Sandbox Code Playgroud) 我有一个文件,我生成闪亮用户点击一个按钮,文件应该下载.但没有任何反应
该函数export_report生成excel文件并将其保存到某个位置.然后,该函数将文件位置传递回下载处理程序,以便下载该文件.问题似乎是它没有正确返回.我已经在export_report光亮之外测试了函数()并且它完美地返回了所有内容,所以我从闪亮的角度来看显然做错了.
文件本身是在应该在服务器上的地方创建的,因为我可以在RStudio中下载它并在文件浏览器中查看它.谁能帮忙
# UI Section
downloadButton("downloadRpt", "Download Report")
# Server Section
output$downloadRpt <- downloadHandler(
filename = function() {
mydf <- report()
dateRange <- input$dates_report
selection <- input$selection
myfile <- export_report (mydf, selection, dateRange)
},
content = function(file) {
file.copy(myfile, file)
}
)
Run Code Online (Sandbox Code Playgroud)
我见过其他例子R Shiny:下载现有文件,这是我的代码所基于的
编辑1:添加带有一些假数据的export_report函数来运行它
export_report <- function(mydf,selection,dateRange) {
# Template for where the template excel file is stored
myoutputTemplate <- '/home/shiny_tutorials/Save to Database/templates/output_template.xlsx'
start_date <- dateRange[1]
end_date <- dateRange[2]
date_range <- paste(start_date …Run Code Online (Sandbox Code Playgroud)