代码之家  ›  专栏  ›  技术社区  ›  guyabel

shiny DownloadHandler()的服务器权限

  •  0
  • guyabel  · 技术社区  · 5 年前

    “请求的URL被拒绝。请咨询管理员。”

    here ui.R

    library(shiny)
    library(googleVis)
    
    # user interface
    shinyUI(pageWithSidebar(
        headerPanel("googleVis on Shiny"),
        sidebarPanel(
            selectInput("dataset", label = "Choose a dataset:",
                        choices = c("rock", "pressure", "cars")),
            downloadButton('download_gvis', label = 'Download')
        ),
        mainPanel(
            htmlOutput("view")
        )
    ))
    

    server.R

    library(googleVis)
    library(webshot)
    
    shinyServer(function(input, output) {
      # data set from user 
      datasetInput <- reactive({
        switch(input$dataset,
               "rock" = rock,
               "pressure" = pressure,
               "cars" = cars)
      })
    
      # plot of data set from user
      my_plot <- reactive({
        gvisScatterChart(datasetInput(),
                         options=list(title=paste('Data:',input$dataset)))
      })
    
      # render plot of data set from user
      output$view <- renderGvis({
        my_plot()
      })
    
      # download plot of data set from user
      output$download_gvis <- downloadHandler(
        filename = "test.png",
        content = function(file) {
          g <- my_plot()
    
          # print to html file
          print(g, file = "gg.html")
    
          # take a webshot of html file and save as png
          webshot(
            url = "gg.html", 
            file = "output.png", 
            delay = 2
          )
    
          # send output file to downloadHandler
          file.copy("output.png", file)
    
          # delete files
          file.remove("gg.html")
          file.remove("output.png")
        }
      )
    })
    

    我认为代码在 print(g, file = "gg.html") gg.html 文件从未出现在服务器目录中(在我的本地机器上,我看到它在RStudio的目录视图中弹出)。

    0 回复  |  直到 5 年前