2016-07-05 12 views
1

私は、ユーザーがドロップダウンメニューから画像ファイルを選択できるようにする、とてもシンプルなアプリを作ろうとしています。そして、選択したものがDropboxから読み込まれ、アプリ。ここで説明するように、rdrop2パッケージのdrop_get関数を使用しています:https://github.com/karthik/rdrop2。 残念ながら、ファイルがロードされていないようですが、代わりのテキストが表示されるまで数秒かかるので、何かがバックグラウンドで起こっています(コンソールにエラーメッセージも警告も表示されません)。光沢のあるアプリの外で試してみると、ファイルが完全に読み込まれるため、私のトークンとドロップボックスの設定がうまくいくはずです。トークンは私の個人的なDropboxの認証の詳細を含んでいるように、コードを100%再現可能ではありませんDropboxからR Shinyアプリに画像ファイルを読み込む

謝罪...

ui.R

library(shiny) 

shinyUI(fluidPage(
    titlePanel("My app"), 
    sidebarLayout(
    sidebarPanel(
     selectInput("figure", 
        "Choose figure", 
        choices = list("file1","file2"), 
        selected = "file1") 
    ), 
    mainPanel(
     imageOutput("image") 
    ) 
) 
)) 

server.R

library(shiny) 
library(rdrop2) 
token <- readRDS("droptoken.rds") 
drop_acc(dtoken = token) 
shinyServer(function(input, output) { 
    reactive({ 
     drop_get(paste(input$figure, '.jpg', sep = '')) 
     }) 
    output$image <- renderImage({ 
     filename <- paste(input$figure, '.jpg', sep='') 
     list(src = filename, 
      alt = paste("Image name:", input$figure)) 
    }, deleteFile = FALSE) 
}) 
+0

「リアクティブ」の出力を値に割り当てて、アプリケーションに表示することはできますか?結果を確認するだけの場合は「TRUE」です –

答えて

0

ますrenderImage内であなたの反応関数を呼び出す必要があります。次のコードに似た何かが私の光り輝くアプリの一つで働いていました。

library(shiny) 
library(rdrop2) 
token <- readRDS("droptoken.rds") 
drop_acc(dtoken = token) 
shinyServer(function(input, output) { 
    myImage <- reactive({ 
     drop_get(paste(input$figure, '.jpg', sep = '')) 
     }) 
    output$image <- renderImage({ 
     myImage() 
     filename <- paste(input$figure, '.jpg', sep='') 
     list(src = filename, 
      alt = paste("Image name:", input$figure)) 
    }, deleteFile = FALSE) 
}) 

EDIT:あるいは、renderImageにdrop_getコードを入れることができます。

library(shiny) 
library(rdrop2) 
token <- readRDS("droptoken.rds") 
drop_acc(dtoken = token) 
shinyServer(function(input, output) { 
    output$image <- renderImage({ 
     drop_get(paste(input$figure, '.jpg', sep = '')) 
     filename <- paste(input$figure, '.jpg', sep='') 
     list(src = filename, 
      alt = paste("Image name:", input$figure)) 
    }, deleteFile = FALSE) 
}) 
関連する問題