2016-08-20 9 views
2

私はShiny app(R)を構築しています。これにより、ユーザーは自分のデータをアップロードすることができます(標準ファイル形式と仮定します)。ユーザーインターフェイスは、hereの例に似ています。私は、ユーザーがそれをアップロードした後に永久にそのデータを保存できるようにしたいので、他のユーザーもそのデータにアクセスできます。ユーザーがShinyアプリにアップロードしたデータを保存する

たとえば、user1はfile1.txtをアップロードし、このファイルを分析することができます。 User2がfile2.txtをアップロードします。今度は、ユーザー1と2がアップロードしたファイルにアクセスできるようになり、さらに多くのファイルをアップロードできるようになり、他のユーザーがアクセスできるようになります。シャイニーでそれをする方法はありますか?

答えて

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

ただ一つの小さな加え:私は出版以来、記事を数回更新されましたので、私は私のブログからではなく、R-ブロガーからそれを読んでお勧めしますhttp://deanattali.com/blog/shiny-persistent-data -ストレージ/ –

関連する問題