我要在Shiny中上传文件并将其复制到WWW文件夹。我的代码正在上传文件,但未将文件复制到WWW文件夹位置。我怎样才能做到这一点?我做错了吗?谢谢。
以下文件“ ui.R”也位于www文件夹中:
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, "\\C:\\Users\\'XXX XXX'\\Documents\\R\\win-library\\3.4\\shiny\\www\\")
})
})
)
答案 0 :(得分:1)
相信在输出路径中提到的字符串是一个简单的问题。我能够使下面的代码正常工作。
如果我尝试使用该应用上载名为 temp.R 的文件,则该文件将被重命名为 0.R ,因为尚未指定完整的文件名在file.copy
中。如果您希望使用完整的文件名而不管用户系统中的文件名如何,请提供该文件名,例如file.copy(input$upload$datapath, "C:\\NotBackedUp\\user_upload.R", overwrite = TRUE)
。
您可以使用input$upload$name
来获取原始名称。
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,
"C:\\NotBackedUp", overwrite = TRUE)
})
})
)