Я смотрю на этот вопрос: отображает 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.
Воспроизводимый код:
Сохраните следующий файл (см. Ниже) как, например, app.R
.
Запустите следующий код, чтобы создать 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)