2016-10-11 202 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) 
相关问题