R闪亮的应用程序(图库应用程序),允许用户上传多个图像并动态显示它们(多个图像,例如网格)

时间:2019-05-08 09:01:37

标签: r image shiny shinydashboard shiny-reactivity

我对R和R Shiny还是很陌生,只是学习而已。我撞到了砖墙。 我想构建一个允许用户上传图像的应用程序(保存在计算机本地)。上传的图像需要动态显示在mainpanel()中。

我已经使用fileInput()来让用户在ui中上传图像。 在服务器部分,我使用observeEvent()完成上载,并使用renderUI()进行显示。但这没有用。 它显示Error:RAW()只能应用于“原始”,而不能应用于“字符”。

ui <- fluidPage
(sidebarLayout(
  sidebarPanel(
    fluidRow( 
      fileInput("myFile", "Choose a file", accept = c('image/png', 'image/jpeg'))
    )
  ),
  mainPanel(
    uiOutput("images")
),
)
)


server <- function(input, output) {
   observeEvent(input$myFile, {
      inFile <- input$myFile
   if (is.null(inFile))
      return()
file.copy(inFile$datapath,file.path("/Users/rohith/Desktop/PROJECTS AND WORK FILES/trial&error/coommoninlist/images", inFile$name) )


})
output$images <- renderUI({

b64 <- list() #to do base64 encoding
for (i in list.files()) {
   name <- paste('image:', i, sep = '')
   tmp <- base64enc::dataURI(file = i, mime = "image/png")
   b64[[name]] <- tmp
 }

 a64 <- list()
 for (j in (1:length(b64))) {
   name_1 <- paste('img:', j, sep = '')
   tmp_1 <- img(src = b64[j],
                width = 250,
                height = 250)
   a64[[name_1]] <- tmp_1
 }
 a64
 # Output list of images
  })
} 
shinyApp(ui = ui, server = server)

0 个答案:

没有答案