Отображение динамически генерируемых изображений в Yesod - PullRequest
9 голосов
/ 22 августа 2011

Я пишу свое первое приложение Yesod. Приложение подразумевает, что пользователь выбирает для просмотра график, динамически генерируемый на основе данных, хранящихся в БД на сервере. Я знаю, как получить запрос пользователя и создать изображение в файловой системе сервера, но как мне создать страницу ответа, представляющую его?

P.S. Поскольку я использую GnuPlot для генерации изображения, я знаю только, как записать его в виде файла в файловую систему, но если вам случится узнать, как поместить данные в память, возможно, будет еще лучше. Спасибо,

1 Ответ

9 голосов
/ 22 августа 2011

Для файла на диске вы можете использовать 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)

Убедитесь, что вы указали правильный тип контента для своего изображения.

...