有没有一种方法可以上传多个文件,其中一个文件在 Shiny 中包含他们的名字?
Is there a way to upload multiple files with one containing their names in Shiny?
我想知道是否有一种方法可以通过一个包含其名称的文件来上传多个文件。例如,我有一个包含 3 行的 .txt,其中包含“File 1.txt”、“File 2.txt”和“File 3.txt”,我想按顺序上传这 3 个文件(文件名称与要上传的文件位于同一文件夹中)。
我不想使用 fileInput(..., multiple = TRUE)
,因为当您上传多个文件时,默认情况下是按字母顺序排列的。对于少数文件,用户可以通过这种方式更改要上传的名称,但是如果您有很多文件,这将成为一项烦人的任务。
我以为我可以将名称粘贴到数据路径的最后一部分,但是当文件上传时,数据路径是在本地临时文件而不是文件的实际位置,如图所示下面。
谢谢!
当 Shiny WEB 应用程序上传文件时,文件会被分配一个新名称并存储在服务器的临时文件夹中。所有的读取都是用这个服务器端存储的文件完成的。服务器没有访问客户端文件系统的权限,也无法从客户端 PC 读取任何文件。因此,没有明显的方法可以以所需的方式解决规定的任务,我想即使找到了方法也不应该使用它,因为它打开了未经授权的文件系统访问风险的大门。
我想如果任务无法以任何替代方式解决,您必须考虑一个 UI 界面,其中包含文件创建、客户端打包和发送到服务器端的排列列表。
如果您要处理的文件有任何类型的模式,您仍然可以在 fileinput 中使用 multiple = T 进行服务器端处理。
下面的示例按上传文件的大小进行排列,但您也可以在名称属性上创建自定义顺序(假设您将使用此列表作为处理的索引)。
library(shiny)
library(magrittr)
ui <- fluidPage(
fileInput(inputId = "fileinput",
label = "select",
multiple = TRUE)
)
server <- function(input,output,session) {
observeEvent(input$fileinput, {
print(input$fileinput %>% dplyr::arrange(desc(size)))
})
}
shinyApp(ui,server)
我想知道是否有一种方法可以通过一个包含其名称的文件来上传多个文件。例如,我有一个包含 3 行的 .txt,其中包含“File 1.txt”、“File 2.txt”和“File 3.txt”,我想按顺序上传这 3 个文件(文件名称与要上传的文件位于同一文件夹中)。
我不想使用 fileInput(..., multiple = TRUE)
,因为当您上传多个文件时,默认情况下是按字母顺序排列的。对于少数文件,用户可以通过这种方式更改要上传的名称,但是如果您有很多文件,这将成为一项烦人的任务。
我以为我可以将名称粘贴到数据路径的最后一部分,但是当文件上传时,数据路径是在本地临时文件而不是文件的实际位置,如图所示下面。
谢谢!
当 Shiny WEB 应用程序上传文件时,文件会被分配一个新名称并存储在服务器的临时文件夹中。所有的读取都是用这个服务器端存储的文件完成的。服务器没有访问客户端文件系统的权限,也无法从客户端 PC 读取任何文件。因此,没有明显的方法可以以所需的方式解决规定的任务,我想即使找到了方法也不应该使用它,因为它打开了未经授权的文件系统访问风险的大门。
我想如果任务无法以任何替代方式解决,您必须考虑一个 UI 界面,其中包含文件创建、客户端打包和发送到服务器端的排列列表。
如果您要处理的文件有任何类型的模式,您仍然可以在 fileinput 中使用 multiple = T 进行服务器端处理。
下面的示例按上传文件的大小进行排列,但您也可以在名称属性上创建自定义顺序(假设您将使用此列表作为处理的索引)。
library(shiny)
library(magrittr)
ui <- fluidPage(
fileInput(inputId = "fileinput",
label = "select",
multiple = TRUE)
)
server <- function(input,output,session) {
observeEvent(input$fileinput, {
print(input$fileinput %>% dplyr::arrange(desc(size)))
})
}
shinyApp(ui,server)