2016-08-20 2 views
2

Я создаю блестящее приложение (R), которое позволяет пользователям загружать свои собственные данные (при условии стандартного формата файла). Пользовательский интерфейс подобен приведенному примеру here. Я хотел бы иметь возможность хранить эти данные навсегда после того, как пользователь загрузит его, чтобы другие пользователи могли иметь к нему доступ.Хранение данных, загруженных пользователем в приложении Shiny

Например, user1 загружает файл1.txt, и приложение позволяет анализировать этот файл. Пользователь2 загружает файл2.txt. Теперь любой будущий пользователь приложения получит доступ к файлам, загруженным пользователями 1 и 2, а также сможет загружать больше файлов, которые становятся доступными для других пользователей. Есть ли способ сделать это в Shiny?

ответ

4

Вам необходимо скопировать загруженный файл из каталога temp ($ datapath) в постоянное место (т. Е. Другой каталог). Затем вы можете использовать dir() для получения списка пользовательских файлов.

Если вам нужен постоянный вид хранения на http://deanattali.com/blog/shiny-persistent-data-storage/

для локального хранения, смотрите пример ниже.

library(shiny) 

ui <- shinyUI(fluidPage(

    sidebarLayout(
    sidebarPanel(
     fileInput('file1', 'Select file to upload') 
    ), 
    mainPanel(
     h4('List of uploaded files:') 
     ,verbatimTextOutput('fileList') 
    ) 
)) 
) 

server <- shinyServer(function(input, output) { 

     observe({ 
      if (is.null(input$file1)) { return(NULL) } 
      file.copy(from = input$file1$datapath, to = paste0('userFile_',input$file1$name) ) 
     }) 

     output$fileList <- renderText({ 
      input$file1 
      dir(pattern = 'userFile_') 
     }) 
}) 

shinyApp(ui, server) 
+0

Только один маленькое дополнение: я рекомендую прочитать его из моего блога, а не от г-блоггеров, потому что я обновил статью несколько раз с момента публикации http://deanattali.com/blog/shiny-persistent-data -место хранения/ –

Смежные вопросы