2017-04-06 145 views
0

我使用閃亮的問題。我想選擇我要在我的應用程序中使用的所有文件的文件夾:1)通過將工作目錄設置爲該文件夾路徑; 2)通過將該文件夾內的所有csv數據上傳到我的應用程序進行進一步處理。 1)我發現shinyFiles包,但它是非常非常緩慢的 - 而不是由於我的PC-以及給予我的錯誤:選擇閃亮的應用程序內的文件夾或文件夾目錄

Warning: Error in dir.create: invalid 'path' argument 
Stack trace (innermost first): 
    59: dir.create 
    58: dirCreate 
    57: observerFunc 
    2: runApp 
    1: shinyFilesExample 

時,我選擇了一個文件夾,創建文件夾按鈕變爲可點擊我我將新文件夾的名稱放入其中,然後單擊該面板下方的「+」。任何人都知道爲什麼?儘管這種方法可行,但速度非常緩慢。代碼如下:

library(shiny) 
library(shinyFiles) 

ui<-fluidPage(sidebarLayout(

    sidebarPanel(
    shinyDirButton("dir", "Chose directory", "Upload") 
), 

    mainPanel(
    h4("output$dir"), 
    verbatimTextOutput("dir"), br() 

) 

)) 


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

    # dir 
    shinyDirChoose(input, 'dir', roots = getVolumes()) 
    dir <- reactive(input$dir) 
    output$dir <- renderPrint(dir()) 




} 
shinyApp(ui = ui, server = server 

是否有另一種選擇?也許要通過fileInput函數上傳所有csv數據?或者另一種方式?它不應該只在本地工作,但在服務器上,因此choose.dir可能不是正確的方法。 非常感謝

+0

或者是否有可能加載與所有csv文件夾。使用fileInput()函數以zip形式提交?然後解壓縮並提取所有csv文件? – JmO

+0

你已經嘗試過'addResourcePath()'了嗎? – BigDataScientist

+0

謝謝。我對所有這些編程都很陌生,所以我試圖理解這個函數做了什麼,但沒有完全掌握它?應用程序的用戶是否可以瀏覽並添加資源路徑,還是我以前必須設置的固定路徑?因爲他/她已將該文件夾保存在其他地方,所以每個使用該應用程序的用戶都將更改該目錄。 – JmO

回答

1

到目前爲止,據我所知,shinyfiles是輸入文件夾的唯一方法。它無法在服務器上工作,因爲瀏覽器不允許選擇文件夾(出於安全原因)。

的噓噓的方法可能是)去,如果你想讓它可正常工作的服務器上(但我不知道它是否能夠真正做到)

1

的的Funktion getwd(得到的唯一途徑你當前工作目錄。

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

    # dir 
    shinyDirChoose(input, 'dir', roots = c(name=getwd())) 
    dir <- reactive(input$dir) 
    output$dir <- renderPrint(dir()) 
} 
相關問題