From 31cc9fbff49968ba687cb56f0b7893a438c31982 Mon Sep 17 00:00:00 2001 From: Sijawusz Pur Rahnama Date: Mon, 8 Aug 2016 20:15:43 +0200 Subject: [PATCH] Add send_file helper variation for sending raw data (#188) Add send_file helper variation for sending raw data * Use Response#content_type= * Fix docs --- src/kemal/helpers/helpers.cr | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/kemal/helpers/helpers.cr b/src/kemal/helpers/helpers.cr index d3ac682..cc32386 100644 --- a/src/kemal/helpers/helpers.cr +++ b/src/kemal/helpers/helpers.cr @@ -57,3 +57,19 @@ def send_file(env, path : String, mime_type : String? = nil) IO.copy(file, env.response) end end + +# Send a file with given data and default `application/octet-stream` mime_type. +# +# send_file env, data_slice +# +# Optionally you can override the mime_type +# +# send_file env, data_slice, "image/jpeg" + +def send_file(env, data : Slice(UInt8), mime_type : String? = nil) + mime_type ||= "application/octet-stream" + + env.response.content_type = mime_type + env.response.content_length = data.bytesize + env.response.write data +end