[英]Change the directory of a file to be saved
我有一個部署為庫的 shiny 應用程序。 在我的 shiny 應用程序中,我實時編寫了一個 json 文件,我想將這個文件寫入每個用戶的工作目錄中。 盡管如此,文件還是寫在庫的目錄中。(請參考下面的代碼)
app.R
library(Tree)
ui <- htmlTemplate("www/Tree.html",
text_output = tableOutput("table2")
)
server <- function(input, output, session){
# This block fires each time we receive a message from JavaScript
output$table2 <- renderTable({
#Write json file
json_value = input$jsonData
write(json_value, paste0(getwd(),"/",fileName, ".json"))
})
}
# Run the application
shinyApp(ui , server)
我雖然使用 function getwd()
我將能夠在我的工作目錄中看到我的 json 文件,但沒有發生。 我的json文件寫在庫目錄下
這個目錄
/Library/Frameworks/R.framework/Versions/4.0/Resources/library/Tree/
如何更改我的代碼以便能夠在用戶想要工作的 RProject 中看到我的 jsonfile?
shiny 應用程序正在您的瀏覽器中運行,因此受到瀏覽器實施的嚴格安全規定的約束。 關於文件系統有很多限制,以確保 web 頁面不能自由漫游您的硬盤驅動器。 這就是為什么可能沒有具有良好用戶體驗的解決方案來實現您想要的。
最安全的解決方案是下載按鈕(如@HubertL 所建議)。
如果您想使用用戶的主目錄,您可以使用file.path(Sys.getenv("HOME"))
獲取路徑(至少在 Windows 上有效)。 現在您可以使用該路徑。 使用OutputPath <- file.path(Sys.getenv("HOME"), fileName)
創建路徑%HOME%/fileName 。
第三種選擇(我能想到)是一個簡單的textInput
。 用戶可以在此處粘貼一個字符串,該字符串表示他們希望存儲文件的目錄的路徑。 使用dir.exists
檢查字符串,如果有效則使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.