闪亮的文件输入接受所有文件类型

Nik*_*hil 2 web-applications r shiny shinyapps

我在 Shiny 上创建了一个表单,其中有 fileInput 按钮,仅上传 .pdf 扩展名文件。但是在测试它时,我发现它接受所有类型的文件类型,但是我在 fileInput 的接受参数中提到了 .pdf,如下代码所示:

 fileInput("fileid","Upload .pdf file only",multiple = FALSE, accept = c('.pdf'),width = "250px")
Run Code Online (Sandbox Code Playgroud)

下面的屏幕截图接受所有类型的文件类型:

接受 .xls 文件类型

在此输入图像描述

接受 .csv 文件类型:

在此输入图像描述

我正在寻找一种解决方案,限制用户仅上传 .pdf 文件,并且如果选择其他文件则不允许用户上传。

任何帮助,将不胜感激。:)

Jan*_*Jan 5

您可以而且必须在您的服务器功能中自行验证这一点。fileInput为您提供 MIME 类型,您可以在加载之前验证其类型是否正确。

output$DisplayFileContent <- renderPrint({
  req(input$fileid)
  # Check for file type
  if (input$fileid$type != "application/pdf") stop("No PDF")
  
  pdffile <- readBin(con=input$file_input$datapath, what = 'raw',n=input$file_input$size)
  # ... more code to show file content
})
Run Code Online (Sandbox Code Playgroud)