我正在编写我的第一个 Yesod 应用程序。该应用程序涉及用户选择查看图表,该图表根据存储在服务器上的数据库中的数据动态生成。我知道如何获取用户请求并在服务器的文件系统上创建图像,但是如何创建一个显示它的响应页面?
PS 由于我使用 GnuPlot 生成图像,我只知道如何将其作为文件写入文件系统,但如果您碰巧知道如何在内存中获取数据,它可能会更好。谢谢,
对于磁盘上的文件,您可以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)
确保为图像指定正确的内容类型。