我正在Shiny中编写一个程序,用户上传文件并保存到指定的文件夹。执行此操作的方法取自this question's answer。
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")
})
})
)
当我执行此操作时,我发现文件在保存到指定文件夹时其文件名被剥离。读取文件夹中文件的程序要求保留文件名。我怎么能做到这一点?
答案 0 :(得分:3)
将file.copy行更改为
file.copy(input$upload$datapath, paste0("your_folder/", input$upload$name))
答案 1 :(得分:0)
这很有效:在本地重命名文件,然后通过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)
}
})
})