gpt4 book ai didi

rshiny-将所有文件从shinyDirChoose文件夹上传到服务器

转载 作者:行者123 更新时间:2023-12-02 02:33:21 29 4
gpt4 key购买 nike

我使用shinyDirChoose保存了用户定义文件夹的路径。现在我想从该用户的文件夹上传文件,但我不知道该怎么做。1)全部在服务器端?2)以某种方式将文件路径提供给fileInput

这就是我构建应上传的三个文件的文件路径的方法。

### ui end, to browse to desired folder
ui = fluidPage(shinyDirButton('directory', 'Folder select', 'Please select a folder'))

### extracting the folder path
server = function(input, output, session) {
volumes <- getVolumes()
shinyDirChoose(input, 'directory', roots=volumes, session=session)
path1 <- reactive({
return(print(parseDirPath(volumes, input$directory)))
})

### constructing the 3 file paths
datpat <- renderText({
req(nchar(path1())>0)
datpat <- paste0(path1(),"/data.csv")
})
vispat <- renderText({
req(nchar(path1())>0)
vispat <- paste0(path1(),"/visit.csv")
})
statpat <- renderText({
req(nchar(path1())>0)
statpat <- paste0(path1(),"/statvisit.csv")
})

现在我有了这些路径,但是如何使用它们将相关内容上传到服务器呢?不幸的是,一个简单的 read.csv 并不能解决问题。

编辑 - 但还没有...

在 @SBista 提供的巨大帮助下进一步工作,我想我正在接近我的目标,但请参阅下面的代码...

volumes <- getVolumes()
shinyDirChoose(input, 'directory', roots=volumes, session=session)
path1 <- reactive({
return(print(parseDirPath(volumes, input$directory)))
})

observe({
if(!is.null(path1)){
### vis1
vis1 <- reactive({
datpat <- paste0(path1(),"/visit.csv")
vis <- read.csv(datpat, header = input$header, sep = input$sep, quote = input$quote,
stringsAsFactors = FALSE)
vis
})
### dataruw1
dataruw1 <- reactive({
datpat <- paste0(path1(),"/data.csv")
dataruw <- read.csv(datpat, header = input$header, sep = input$sep, quote = input$quote,
stringsAsFactors = FALSE)
dataruw
})
}
})

不幸的是,dataruw1vis1似乎没有生成,因为我在尝试使用实际数据时收到“无法找到函数”错误>dataruw1()vis1()。我缺少什么?任何想法?预先非常感谢!

最佳答案

我修改了您的应用,以演示您可以使用 read.csv 上传文件。为了进行演示,我仅从文件夹中读取一个文件,并在数据表中显示读取的数据帧。

  library(shiny)
library(shinyFiles)

### ui end, to browse to desired folder
ui = fluidPage(shinyDirButton('directory', 'Folder select', 'Please select a folder'),
tableOutput(outputId = "datpat")
)

### extracting the folder path
server = function(input, output, session) {
volumes <- getVolumes()
shinyDirChoose(input, 'directory', roots=volumes, session=session)
path1 <- reactive({
return(print(parseDirPath(volumes, input$directory)))
})

### constructing the 3 file paths
observe({
if(!is.null(path1)){
output$datpat <- renderTable({
req(nchar(path1())>0)
datpat <- paste0(path1(),"/data.csv")
dat <- read.csv(datpat)
dat
})

}
})

}

shinyApp(ui = ui, server = server)

希望对你有帮助!

关于rshiny-将所有文件从shinyDirChoose文件夹上传到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44437671/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com