Я не могу сделать блестящий 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)
}
)
})
И простой ui.R
:
shinyUI(fluidPage(
titlePanel(""),
sidebarLayout(
sidebarPanel(
downloadButton("downloadData", label = "Download")
),
mainPanel(h6("Sample download", align = "center"))
)
))
У меня хороший результат, кроме ошибки:
> shiny::runApp('C:/Users/user/AppData/Local/Temp/test')
Listening on http://127.0.0.1:7280
adding: sample_1.csv (stored 0%)
adding: sample_2.csv (stored 0%)
adding: sample_3.csv (stored 0%)
adding: sample_4.csv (stored 0%)
adding: sample_5.csv (stored 0%)
Error opening file: 2
Error reading: 6
И не сохранять диалог сохранения архива. Но в папке temp
представлен правильный архив. Как правильно делиться архивом?