2015-10-26 47 views
-1

我正在研究一個閃亮的應用程序,當在UI中提供一個URL時,我需要從Web獲取並下載文件。服務器端在調用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

閃亮通過反應性工作。你可以閱讀更多有關在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)) 
    }) 
} 
相關問題