复制上传文件并将其粘贴到www文件夹位置

时间:2018-07-18 04:52:29

标签: r shiny shiny-server

我要在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\\")
    })
  })
)

1 个答案:

答案 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)
    })
  })
)