传输文件的闪亮应用程序

时间:2017-07-10 11:40:45

标签: shiny

我正在尝试创建一个非常简单的应用程序,将用户选择的文件传输到固定位置。然后打印传输结果(True / False)。复制的语法在闪亮的

之外工作
CMAKE_STATIC|SHARED|EXE_LINKER_FLAGS

1 个答案:

答案 0 :(得分:1)

您的代码有2个问题。 1)永远不会执行renderPrint函数,而是使用verbatimTextOutput。 2)$datapath中的文件名与原始文件不同,您应指明$name中的原始名称,否则目标文件将具有0或某些随机名称号。

以下是您修改的代码,其中包含一些可能对您有用的额外信息。函数file.path用于指示目标目录以及原始文件名。

library(shiny)

ui <- fluidPage(
  fileInput('file1', 'Choose 1st File',
            accept=c('text/csv', 
                     'text/comma-separated-values,text/plain', 
                     '.fastq' , '.fasta')) ,
  verbatimTextOutput('result')
)

server <- function(input , output){
  destDir <- 'H:/Shiny/FileTransfer/TestLocation'  
  output$result <- renderPrint({
    inFile <- input$file1
    if (is.null(inFile)) {
      cat("NOT FILE\n")
      return(FALSE)
    }
    cat("Reading file:", inFile$name, "\n")
    cat("size:", inFile$size, " Bytes, type:", inFile$type, "\n")
    if (dir.exists(destDir)){
      cat("Copying file to:", destDir,"\n")
      result <- file.copy( inFile$datapath,
                           file.path(destDir, inFile$name) )
    } else {
      result <- FALSE
    }
    result
  })
}

shinyApp(ui = ui , server = server)