2016-06-17 5 views
2

"다운로드"버튼이 예상대로 작동하지 않습니다. 그것을 클릭 할 때마다 새로운 응용 프로그램 창이 열립니다. 이런 식으로 왜 작동하는지 궁금합니다. server.R에"다운로드"버튼을 클릭하면 다운로드하지 않고 새 응용 프로그램 창이 열립니다. - Shiny

다운로드 기능 : ui.R에

output$down_load <- downloadHandler(
    # specify the file name 
    filename = function() { 
      paste('cls_result_export', Sys.Data(),'.csv', sep='') 
     }, 
    # Write the plot back 
    content = function(file){ 
      write.csv(cls_output()$raw_data, file) 
     } 
) 

다운로드 기능 :

downloadButton(outputId = "down_load", label = "Download the CLS Raw Data") 
+0

@ user5249203 음, 아직 새 창 심지어 내가 대신 "cls_result_export.csv"를 사용 열립니다. 또한 cls_output()은 여러 객체를 반환하는 반응 객체입니다. "cls_output() $ raw_data"를 사용하여 "cls_output()"에서 "raw_data"객체를 가져 오는 것이 좋습니다. –

+0

그래서 당신의 기대는 무엇입니까? 사용자에게 이름을 바꿀 기회를주기 위해 창을 열어야한다고 생각합니다. 브라우저와 R-Studio 뷰어에서 다르게 작동하는 것처럼 보이지만 Chrome 브라우저에서 창을 열지 않습니다. . 창을 원하지 않는다면, 그냥 작업 버튼을 사용하여 저장할 수 있습니다. –

+0

@MikeWise "조치 버튼"사용 제안에 감사드립니다! 시도해 볼 것입니다. 현재 사용중인 "다운로드"버튼을 누르면 동일한 응용 프로그램의 새로운 세션을위한 새 창 및이 프로세스에서 수행 된 다운로드가 없습니다. 그냥 다운로드를위한 새 창이 열리면 괜찮습니다. ( –

답변

1

사용하여 시도 이와 같은 observe 절에 연결된 actionButton :

library(shiny) 

ui <- fluidPage( actionButton("dodo", "Download")) 

    server <- function(input, output) 
    { 
    observe({ 

     if (input$dodo>0){ 
      fname <- paste0('cls_result_export', Sys.Date(),'.csv') 
      write.csv(mtcars,fname) 
     } 
    }) 
} 
shinyApp(ui = ui, server = server) 
+0

고마워요! 그것은 작동합니다! –

1

이 문제를 해결할 수있는 다른 방법은에이 줄을 포함하는 것입니다.스크립트 :

outputOptions(output, 'down_load', suspendWhenHidden=FALSE)

+0

업데이트를 보았습니다. 대체 솔루션을 가져 주셔서 감사합니다! –