如何上传图像文件,在 Shiny R 上显示和删除它
How to Upload Image File, Display and Remove it on Shiny R
需要帮助,我想上传一个图像文件,在 shiny 上显示它,可以删除图像。
我已经试过了,但问题是第一次尝试上传文件没问题,但第二次尝试时图像不显示。
library(shiny)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
fluidRow(
fileInput("myFile", "Choose a file", accept = c('image/png', 'image/jpeg')),
actionButton('reset', 'Reset Input')
)
),
mainPanel(
div(id = "image-container", style = "display:flexbox")
)
)
)
server <- function(input, output) {
observeEvent(input$myFile, {
inFile <- input$myFile
if (is.null(inFile))
return()
b64 <- base64enc::dataURI(file = inFile$datapath, mime = "image/png")
insertUI(
selector = "#image-container",
where = "afterBegin",
ui = img(src = b64, width = 600, height = 600)
)
})
observeEvent(input$reset, {
removeUI(
selector = "#image-container",
)
})
}
shinyApp(ui = ui, server = server)
非常感谢任何解决方案
您的 removeUI
您正在删除容器。改为删除其内容:
observeEvent(input$reset, {
removeUI(
selector = "#image-container > *"
)
})
需要帮助,我想上传一个图像文件,在 shiny 上显示它,可以删除图像。
我已经试过了,但问题是第一次尝试上传文件没问题,但第二次尝试时图像不显示。
library(shiny)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
fluidRow(
fileInput("myFile", "Choose a file", accept = c('image/png', 'image/jpeg')),
actionButton('reset', 'Reset Input')
)
),
mainPanel(
div(id = "image-container", style = "display:flexbox")
)
)
)
server <- function(input, output) {
observeEvent(input$myFile, {
inFile <- input$myFile
if (is.null(inFile))
return()
b64 <- base64enc::dataURI(file = inFile$datapath, mime = "image/png")
insertUI(
selector = "#image-container",
where = "afterBegin",
ui = img(src = b64, width = 600, height = 600)
)
})
observeEvent(input$reset, {
removeUI(
selector = "#image-container",
)
})
}
shinyApp(ui = ui, server = server)
非常感谢任何解决方案
您的 removeUI
您正在删除容器。改为删除其内容:
observeEvent(input$reset, {
removeUI(
selector = "#image-container > *"
)
})