服务器端闪亮没有响应呼叫Web呼叫

时间:2015-10-26 12:06:33

标签: r web-applications shiny reactive-programming

我正在开发一个闪亮的应用程序,当UI中提供了一个URL时,我需要从web获取并下载文件。

在我尝试获取文件并将文件下载到特定位置时,在服务器站点上,应用程序出错。我猜它是因为反应过程。

下面提供了示例代码,请告诉我错误的地方。

服务器端: {

library(shiny)
require(XML)
require(utils)

shinyServer(function(input, output, session) {

dfile <- "~/dest/temp.pdf"
dest <- "~/dest"
url<-input$pdfurl

download.file(url,dfile)

myfiles <- list.files(path = dest, pattern = "pdf",  full.names = TRUE)

lapply(myfiles, function(i)    system(paste('"D:/pranav/software/xpdf/bin64/pdftotext.exe"', paste0('"', i, '"')), wait = FALSE) )

}

客户方:

{

library(shiny)

row <- function(...) {
  tags$div(class="row", ...)
}

col <- function(width, ...) {
  tags$div(class=paste0("span", width), ...)
}

shinyUI(fluidPage(
        fluidRow(
          column(12,style = "background-color:#ADD8C9;",
                 titlePanel("Document Reader"),
        fluidRow(
          column(8,style = "background-color:#ADD8C6;", 
                 tags$div(
                   class = "container",

                   row(
                     col(3, textInput("pdfurl", "PDF URL"))
                   ),
                   row(
                     col(6, style = "width:600px;",htmlOutput('pdfviewer'))
                   )
                 )
          ),

          column(4,style = "background-color:#ADD8C9;", 

          )

        )


      )
      )
)
)

}

1 个答案:

答案 0 :(得分:1)

闪亮的作品通过反应性。您可以在http://shiny.rstudio.com/articles/reactivity-overview.html

上详细了解相关信息

如果没有ui-side,则无法重现您的问题,但您可以尝试这样的事情:

shinyServer(function(input, output, session) {
    observeEvent(input$pdfurl, {
        download.file(input$pdfurl,dfile)
        myfiles <- list.files(path = dest, pattern = "pdf",  full.names = TRUE)
        lapply(myfiles, function(i)    system(paste('"D:/pranav/software/xpdf/bin64/pdftotext.exe"', paste0('"', i, '"')), wait = FALSE) )
    })
}