2016-10-11 239 views
1

我試圖上傳一個圖像,然後使用Shiny將其保存到服務器文件系統。R Shiny:上傳圖像文件並保存到服務器

要上傳,我發現

fileInput 

它創建一個包含圖像的細節和數據路徑一data.frame。那麼如何將其用於保存到遠程服務器?

+0

在UI方面,當你說出類似'的FileInput( '文件1', '選擇CSV文件', 接受= C( '文本/ CSV', \t \t \t \t \t \t \t \t「文/逗號分隔值,文本/純, \t \t \t \t \t \t \t \t「的.csv」))',對象'輸入$ file1'將是您在服務器端文件。您可以從那裏使用該文件,將其存儲(例如'write()')或通過SFTP,雲服務或其他方式將其發佈到遠程服務器。您可能需要閱讀以下內容:http://shiny.rstudio.com/articles/persistent-data-storage.html - 此處爲上傳示例:http://shiny.rstudio.com/gallery/file-upload.html – nilsole

回答

2

這裏是基本的例子。它只會將上傳的文件複製到服務器上的位置。這是在同一臺計算機上,但它可能在任何地方。

library(shiny) 

shinyApp(
    ui = shinyUI( 
    fluidRow( 
     fileInput("myFile", "Choose a file", accept = c('image/png', 'image/jpeg')) 
    ) 
), 
    server = shinyServer(function(input, output,session){ 
    observeEvent(input$myFile, { 
     inFile <- input$myFile 
     if (is.null(inFile)) 
     return() 
     file.copy(inFile$datapath, file.path("c:/temp", inFile$name)) 
    }) 
    }) 
) 

shinyApp(ui, server) 
相關問題