You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 13:22:32