在 Yesod 中显示动态生成的图像

发布于 2024-11-30 19:20:08 字数 189 浏览 1 评论 0原文

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

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

I'm writing my first Yesod app.
The application involves the user selecting to view a graph, dynamically generated based on data stored in a DB on the server.
I know how to get the user request and create the image on the server's file system, but how do I create a response page presenting it?

P.S. As I'm using GnuPlot to generate the image, I only know how to write it as a file to the file system, but If you happen to know how to get the data in memory it'll probably be even better.
Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱你是孤单的心事 2024-12-07 19:20:09

对于磁盘上的文件,您可以使用 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)

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

For a file on disk, you can use sendFile in your handler.

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

For sending it from a ByteString in memory, use sendResponse.

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

Make sure you specify the correct content type for your image.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文