10

我正在编写我的第一个 Yesod 应用程序。该应用程序涉及用户选择查看图表,该图表根据存储在服务器上的数据库中的数据动态生成。我知道如何获取用户请求并在服务器的文件系统上创建图像,但是如何创建一个显示它的响应页面?

PS 由于我使用 GnuPlot 生成图像,我只知道如何将其作为文件写入文件系统,但如果您碰巧知道如何在内存中获取数据,它可能会更好。谢谢,

4

1 回答 1

10

对于磁盘上的文件,您可以sendFile在处理程序中使用。

getImageR = do
    -- ... save image data to disk somewhere
    sendFile typeJpeg "/path/to/file.jpg"

要从ByteString内存中发送它,请使用sendResponse.

getImageR = do
    bytes <- -- generate image data
    sendResponse (typePng, toContent bytes)

确保为图像指定正确的内容类型

于 2011-08-22T15:11:53.293 回答