我正在尝试创建一个闪亮的应用程序,用户可以在其中查看目录中的文件列表,选择其中一个文件,然后将其下载到他们的计算机。我可能过于复杂了,但我似乎无法找到解决方案。
ui.R
afterEach
server.R
filenames <- list.files(path=".",pattern="\\.txt")
shinyUI(navbarPage("Download page",
tabPanel("Download",
sidebarLayout(
sidebarPanel(
selectInput("filenames", "Select the file you want to download:", filenames), downloadButton('downloadData', 'Download')
),
mainPanel(
p("Preview of sheet."),
tableOutput('table')
)))))
当我运行应用程序时,我可以查看目录中的文件列表,但下载功能不会导致所选文件被下载。
答案 0 :(得分:1)
假设您的工作目录中有一堆'csv'文件,下面的代码将列出并预览'csv'文件并将所选文件下载到您想要的目录。
<强> ui.R 强>
shinyUI(navbarPage("Download page",
tabPanel("Download",
sidebarLayout(
sidebarPanel(
selectInput("filenames", "Select the file you want to download:", list.files(pattern = '.csv')),
downloadButton('downloadData', 'Download')),
mainPanel(
p("Preview of sheet."),
tableOutput('table')
)))))
<强> server.R 强>
library(shiny)
shinyServer(function(input, output) {
datasetInput <- reactive({
switch(input$filenames,
filenames)
})
output$table <- renderTable({
read.csv(input$filenames, header=TRUE)
})
output$downloadData <- downloadHandler(
filename = function() {input$filenames},
content = function(file) {write.csv(read.csv(input$filenames, header=TRUE),file)}
)})