2014-11-12 16 views
5

मैं चमकदार के downloadHandler उत्पादन के लिए ज़िप फ़ाइल नहीं बना सकते: त्रुटि को छोड़करचमकदार: डाउनलोड ज़िप संग्रह

shinyUI(fluidPage(
    titlePanel(""), 
    sidebarLayout(
    sidebarPanel(
     downloadButton("downloadData", label = "Download") 
    ), 
    mainPanel(h6("Sample download", align = "center")) 
) 
)) 

मैं अच्छा उत्पादन हो रही हैं:

# server.R 
library(shiny) 

shinyServer(function(input, output) { 
    output$downloadData <- downloadHandler(
    filename <- function() { 
     paste("output", "zip", sep=".") 
    }, 

    content <- function(fname) { 
     fs <- c() 
     tmpdir <- tempdir() 
     setwd(tempdir()) 
     for (i in c(1,2,3,4,5)) { 
     path <- paste0("sample_", i, ".csv") 
     fs <- c(fs, path) 
     write(i*2, path) 
     } 
     zip(zipfile=fname, files=fs) 
    } 
) 
}) 

और सरल ui.R :

> shiny::runApp('C:/Users/user/AppData/Local/Temp/test') 

Listening on http://127.0.0.1:7280 
    adding: sample_1.csv (stored 0%) 
    adding: sample_2.csv (stored 0%) 
    adding: sample_3.csv (stored 0%) 
    adding: sample_4.csv (stored 0%) 
    adding: sample_5.csv (stored 0%) 
Error opening file: 2 
Error reading: 6 

और संग्रह को सहेजने के लिए कोई सहेजने वाला संवाद नहीं है। लेकिन temp फ़ोल्डर में सही संग्रह प्रस्तुत किया गया है। संग्रह को सही तरीके से कैसे साझा करें?

+0

'पुस्तकालय (Rcompression)' समारोह 'zip' को देखने के लिए यह http://stackoverflow.com/questions/4624360/creating-zip-file मदद कर सकते हैं कि क्या प्रयास करें -फ्रॉम-फ़ोल्डर्स – Keniajin

उत्तर

6

आप डाउनलोड हैंडलर फ़ंक्शन के अंदर <- का उपयोग कर रहे हैं और = का उपयोग करना चाहिए। इसके अलावा, आप को परिभाषित करने की आवश्यकता हो सकती contentType:

library(shiny) 

runApp(
    list(server = function(input, output) { 
    output$downloadData <- downloadHandler(
     filename = function() { 
     paste("output", "zip", sep=".") 
     }, 
     content = function(fname) { 
     fs <- c() 
     tmpdir <- tempdir() 
     setwd(tempdir()) 
     for (i in c(1,2,3,4,5)) { 
      path <- paste0("sample_", i, ".csv") 
      fs <- c(fs, path) 
      write(i*2, path) 
     } 
     zip(zipfile=fname, files=fs) 
     }, 
     contentType = "application/zip" 
    ) 
    } 
    , ui = fluidPage(
    titlePanel(""), 
    sidebarLayout(
     sidebarPanel(
     downloadButton("downloadData", label = "Download") 
    ), 
     mainPanel(h6("Sample download", align = "center")) 
    ) 
)) 
) 
+0

मैंने देखा, कि यदि मैं Rstudio ब्राउज़र का उपयोग करता हूं तो ज़िप डाउनलोड मेरे लिए काम नहीं करता है। तो आप सुनिश्चित करने के लिए बाहरी ब्राउज़र में इसे आजमा सकते हैं। –

संबंधित मुद्दे