Где находится каталог локального хоста блестящего приложения в R для отображения локального файла PDF? - PullRequest
0 голосов
/ 17 апреля 2020

Я смотрю на этот вопрос: отображает pdf с локального диска в блестящем и хочу отобразить локальный pdf файл.

Я поместил свой pdf в C:\Users\user1\Documents\shiny_pdf\www. Приложение помещено в C:\Users\user1\Documents\shiny_pdf, и я установил свой рабочий каталог в последний каталог.

Теперь я не уверен, как ссылаться на этот файл в приложении.

Автор ответа сообщение в связанном состоянии вопроса:

, поэтому вы должны сохранить их на своем www directory (локальный веб-сервер) и получить доступ к файлам с их http (s): URL (URL будет что-то вроде http://localhost/.../mypdf.pdf)

Так что я не уверен, как перейти от http://localhost/ к C:\Users\user1\Documents\shiny_pdf\www.

Что я пробовал:

  • Я бы предположил, что у меня есть www - это каталог сервера, поэтому я бы использовал http://localhost/R-intro.pdf.

  • Я добавил изображение в свое блестящее приложение и проверил его адрес сервера в браузере. Затем я нашел файл PDF соответственно. Я могу открыть его через: http://127.0.0.1:6023/r-intro.pdf (6023 - номер моего порта). Но я не могу использовать это ни для ссылки на него в iframe.

  • Я также пытался list.files(), но это (обв.) Даст мне файлы из рабочего каталога.

  • http://localhost/R-intro.pdf также не работает.

Ошибка:

Fehler: Verbindung fehlgeschlagen Firefox kann keine Verbindung zu dem Сервер unter localhost aufbauen.

, что свободно переводится на. Соединение не удалось. Firefox Невозможно установить соединение с сервером под localhost.

Воспроизводимый код:

  1. Сохраните следующий файл (см. Ниже) как, например, app.R.

  2. Запустите следующий код, чтобы создать WWW directoy для блеска и поместите в него образец PDF-файла.

dir.create("www") pdf(file = "www/r-intro.pdf") plot(1) dev.off() list.files()

Здесь код для сохранения, например, app.R.

Код:

library(shiny)

server <- shinyServer(function(input, output, session) {

  observe({
    print(list.files("http://localhost/R-intro.pdf"))
  })

  output$pdfviewer <- renderText({
    return(paste('<iframe style="height:600px; width:100%" src="', input$pdfurl, '"></iframe>', sep = ""))
  })

})


row <- function(...) {
  tags$div(class="row", ...)
}

col <- function(width, ...) {
  tags$div(class=paste0("span", width), ...)
}

ui <- shinyUI(bootstrapPage(

  headerPanel("PDF VIEWER"),

  mainPanel(

    tags$div(
      class = "container",

      row(
        col(3, textInput("pdfurl", "PDF URL"))
      ),
      row(
        col(6, htmlOutput('pdfviewer')),
        col(6, tags$iframe(style="height:600px; width:100%", src="https://localhost/www/R-intro.pdf"))
      )
    )
  )
))


shinyApp(ui, server)

1 Ответ

0 голосов
/ 17 апреля 2020

Хм, хорошо, вопреки советам из поста

col(6, tags$iframe(style="height:600px; width:100%", src="R-intro.pdf")),

просто ссылка на файл работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...