我正在创建R Shiny应用程序,其中有一个文档列表的下拉列表(selectInput)和一个下载按钮。功能是用户将从列表中选择一个文档,并使用下载按钮下载该文档。
UI.R中的
tabItem(tabName = "Downloads",
selectInput("filenames", "Choose a document to download:",list.files(path="/srv/shiny-server/apps/dsw/files")),
downloadButton('downloadData', 'Download')),
<\ n>在Server.R 中
datasetInput <- reactive({
switch(input$filenames,input$filenames)
})
output$downloadData <- downloadHandler(
filename = function() {
paste(input$filenames)
},
content = function(file) {
write.csv(datasetInput(), file)
}
)
我将这些文件放在Linux服务器上的闪亮应用程序的www文件夹中。
MyApp的
--app.R
--files
-- Doc1.doc
-- Doc2.csv
当我运行应用程序时,它只会下载空的.csv或.docx文件,但不会从服务器下载实际文件。
答案 0 :(得分:1)
解决方法如下:
UI.R
tabItem(tabName = "Downloads",
selectInput("filenames", "Choose a document to download:",list.files(path="/srv/shiny-server/apps/files")),
downloadButton('downloadData', 'Download'))
Server.R
output$downloadData <- downloadHandler(
filename = function() {
paste(input$filenames, sep='')
},
content = function(file) {
myfile <- paste0('/srv/shiny-server/apps/files/',input$filenames, collapse = NULL)
file.copy(myfile, file)
}
)