我想知道是否有一種方法可以通過一個包含其名稱的檔案上傳多個檔案。例如,我有一個 .txt 檔案,其中有 3 行,其中包含“File 1.txt”、“File 2.txt”和“File 3.txt”,我想按該順序上傳這 3 個檔案(具有名稱的檔案位于與要上傳的檔案相同的檔案夾)。
我不想使用,fileInput(..., multiple = TRUE)因為當您上傳多個檔案時,默認情況下是按字母順序排列的。對于一些檔案,用戶可以通過這種方式更改要上傳的名稱,但是如果您有很多檔案,這將成為一項煩人的任務。
我認為我可以將名稱粘貼到資料路徑的最后一部分,但是當檔案上傳時,資料路徑位于本地臨時檔案中,而不是檔案的實際位置,如下圖所示。

謝謝!
uj5u.com熱心網友回復:
當 Shiny WEB 應用程式上傳檔案時,該檔案會被分配一個新名稱并存盤在服務器的臨時檔案夾中。所有的讀取都是用這個服務器端存盤的檔案完成的。服務器沒有訪問客戶端檔案系統的權限,也無法從客戶端 PC 讀取任何檔案。因此,沒有明顯的方法可以以所需的方式解決所述任務,我想即使找到了這種方式也不應該使用它,因為它為未經授權的檔案系統訪問風險打開了大門。
我想如果任務不能以任何替代方式解決,您必須考慮一個 UI 界面,其中包含檔案創建、客戶端打包和發送到服務器端的排列串列。
uj5u.com熱心網友回復:
如果您要處理的檔案有任何型別的模式,您仍然可以在 fileinput 中使用 multiple = T 進行服務器端處理。
我下面的示例安排了上傳檔案的大小,但您也可以在 name 屬性上創建自定義順序(假設您將使用此串列作為處理索引)。
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/373007.html
