Связать файлы в папке с Shiny - PullRequest
       1

Связать файлы в папке с Shiny

1 голос
/ 22 сентября 2019

То, что я хочу сделать, это блестящее приложение, которое показывает файлы, которые находятся в папке, и позволяет пользователю нажимать на нее, открывать / скачивать.Представьте, что у меня есть 3 файла в папке, например:

file1.txt  file2.bmp  file3.jpg

Я хочу, чтобы мое приложение показывало мне эти файлы и позволяло мне щелкать по ним, чтобы загрузить / открыть.Если это только html, это будет похоже на

<a href="file1.txt">file1</a><a href="file2.bmp">file2</a><a href="file3.jpg">file3</a>

Это должно быть сделано динамически, поэтому, когда я нажимаю на кнопку, он обновляет список файлов, которые находятся в папке, и позволяет мне скачать их.

Спасибо!

Ответы [ 2 ]

1 голос
/ 22 сентября 2019

Вот простая программа для просмотра файлов, открытия файла и отображения его содержимого.

library(shiny)
# Define UI
ui <- pageWithSidebar(
# App title ----
headerPanel("Open a File and Show Contents"),
# Sidebar panel for inputs ----
    sidebarPanel(
    label="Data Source",fileInput("fileName", "File Name")),

# Main panel for displaying outputs ----
mainPanel(
    textOutput(outputId = "text"))
)

# Define server logic
server <- function(input, output) {

inputData <- reactive ({
  if (is.null(input$fileName)) return(NULL)
  inFile <- input$fileName
  conInFile <- file(inFile$datapath,open='read')
  inData <- readLines(conInFile)
  close (conInFile)
  return (inData)
})

output$text <- renderText ({
  inData <- inputData()
  inData
})
}

shinyApp(ui, server)
1 голос
/ 22 сентября 2019

Если вы хотите получить список файлов в папке, вы можете создать список этих файлов с помощью

yourFiles <- list.files(yourDirectory).

Вы можете либо создать кнопку, которая обновит назначаемую переменную, здесь , либо опрашивать папку, чтобы она автоматически обновлялась по таймеру.Вы можете сделать это с помощью reactivePoll(), документов здесь .Это будет сделано в разделе server <- function(input, output, session) {yourCodeHere} приложения.

Документы для кнопок действий содержат пример того, как выполнять действия, такие как обслуживание ссылок на скачивание JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...