使用Shiny downloadHandler下载PNG文件失败,下载得到down.html
解决Shiny下载PNG时出现down.html的问题
你的代码存在两个关键问题,导致下载的是down.html而非预期的PNG文件:
- 未执行设备关闭操作:
dev.off后缺少括号,仅引用了函数对象,没有实际调用关闭绘图设备的函数,导致PNG文件无法正确生成,Shiny会默认返回HTML页面。 - filename参数格式不规范:
filename需要是一个无参函数,返回文件名字符串,直接传入字符串可能引发兼容性问题。
修正后的代码如下:
library(shiny) ui <- fluidPage( downloadButton("down","Download .png") ) server <- function(input, output, session) { output$down <- downloadHandler( filename = function() { "test.png" }, content = function(file) { png(file) plot(1:5) dev.off() # 加括号调用关闭设备的函数 }, contentType = "image/png" ) } shinyApp(ui, server)
运行修正后的代码,点击下载按钮即可正常获取名为test.png的图片文件。
内容的提问来源于stack exchange,提问作者user23669741
相关产品推荐
相关产品推荐

