Displaying dynamically generated images in Yesod
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 us开发者_如何学Pythoning 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,
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.
精彩评论