2017-02-08 3 views
1

Ich habe eine Reihe von ".jpg" -Dateien in meinem www-Ordner meines Skripts. Ich möchte renderImage haben, um das Bild mit dem Dateinamen "dateplatform.jpg" basierend auf den Eingaben (Datum, Plattform) meiner Benutzeroberfläche zu rendern. Wenn ich das folgende Skript in meiner server.r-Datei ausprobiere, zeigt die App kein Bild an. Irgendwelche Gedanken?Shiny SelectInput zum Generieren eines Dateipfads für renderImage

ui (Teil-)

 fluidRow(
       column(width=12, 
       imageOutput("platformimage") 
        ) 
       ) 

Server (teilweise)

filename <- reactive ({ 
    paste(input$date, input$platform, sep="") 
    }) 

    output$platformimage <- reactive({ 
    renderImage({ 
    list(src = filename(), 
     width = 600, 
     height = 600) 

      },deleteFile = FALSE) 
    }) 
+0

'renderImage' muss nicht in eine' reactive' eingebettet werden – HubertL

+0

@HubertL Ich habe es als reaktiv hinzugefügt, weil ich "Warnung: Fehler in file.info: ungültiger Dateiname Argument" die Standardauswahl für Datum, Plattform enthält kein Bild. –

Antwort

1

filename hat zumindest die Verlängerung zu ihm angebracht haben, und es ist wahrscheinlich sicherer zu normalizePath es:

filename <- reactive({ 
    normalizePath(file.path(paste0(input$date, input$platform '.jpg'))) 
}) 

Wenn dies fehlschlägt, liegt es wahrscheinlich daran, dass der Server das nicht finden kann Datei. Überprüfen Sie den Pfad erstellt von filename(), und beheben Sie innerhalb file.path()

Hope dies hilft.

+0

@G Gamba, ich sehe tatsächlich immer noch ein Problem. Wenn ich den Quellcode manuell zum direkten Dateipfad hinzufüge, erzeugt er ein Bildfehler, es versucht, den Namen der Eingabe für das Datum und die Plattform einzufügen, mit dem das imageImage ein Problem hat. Ich habe es als renderImage im Server und imageOutput in der Benutzeroberfläche. Ist das korrekt? –

+1

versuche, 'output $ path <- renderText ({filename()})' in server.R und 'textOutput ('path')' in der UI einzufügen. Was ist das Ergebnis? Nehmen Sie auch das 'reactive' aus' renderImage' – GGamba

+0

@G Gamba, das hat es geschafft, danke! –

Verwandte Themen