2017-04-06 97 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()) 
} 
相关问题