#r #shiny
#r #блестящий
Вопрос:
Я пытаюсь загрузить изображение, а затем сохранить его в файловой системе сервера с помощью Shiny.
Для загрузки я нашел
fileInput
который создает data.frame, содержащий детали изображения и путь к данным. Как тогда это можно использовать для сохранения на удаленном сервере?
Комментарии:
1. На стороне пользовательского интерфейса, когда вы указываете что-то вроде
fileInput('file1', 'Choose CSV File', accept=c('text/csv', 'text/comma-separated-values,text/plain', '.csv'))
, объектомinput$file1
будет ваш файл на стороне сервера. Вы можете работать с этим файлом оттуда, сохранять его (напримерwrite()
) или отправлять на удаленный сервер через SFTP, облачные сервисы или что-то еще. Возможно, вы захотите прочитать это: shiny.rstudio.com/articles/persistent-data-storage.html — а вот пример загрузки: shiny.rstudio.com/gallery/file-upload.html
Ответ №1:
Вот простой пример. Он копирует только загруженный файл в местоположение at на сервере. Это на том же компьютере, но это может быть где угодно.
library(shiny)
shinyApp(
ui = shinyUI(
fluidRow(
fileInput("myFile", "Choose a file", accept = c('image/png', 'image/jpeg'))
)
),
server = shinyServer(function(input, output,session){
observeEvent(input$myFile, {
inFile <- input$myFile
if (is.null(inFile))
return()
file.copy(inFile$datapath, file.path("c:/temp", inFile$name) )
})
})
)
shinyApp(ui, server)