闪亮的 fileInput 不保留文件名

Shiny fileInput Does Not Keep File Name

我正在用 Shiny 编写一个程序,用户可以在其中上传文件并将其保存到指定的文件夹中。这样做的方法取自

library(shiny)

shinyApp(
    ui=shinyUI(bootstrapPage(
       fileInput("upload", "Upload", multiple = FALSE)
    )),

    server=shinyServer(function(input, output, session){               
        observe({
            if (is.null(input$upload)) return()
            file.copy(input$upload$datapath, "/some/other/path")
        })
    })
)

当我执行此操作时,我发现该文件在保存到指定文件夹时删除了文件名。读取文件夹中文件的程序要求保留文件名。我怎样才能做到这一点?

将 file.copy 行更改为

file.copy(input$upload$datapath, paste0("your_folder/", input$upload$name))

这很有效:在本地重命名文件,然后通过 forloop 上传它们,然后删除本地文件。这是一些对我有用的代码:

observe({
  if(!is.null(input$file_support)){
    browser()
    files = file.rename(input$file_support$datapath, paste0(input$file_support$name))
    files = paste0(input$file_support$name)
    n_files = length(files)
    for(i in 1:n_files){
      drop_upload(files[i], dest = "drop_test")
    }
  file.remove(files)
  }
  })

})