diff --git a/lib/pinchflat_web/controllers/media_items/media_item_controller.ex b/lib/pinchflat_web/controllers/media_items/media_item_controller.ex index 278ef23..a560020 100644 --- a/lib/pinchflat_web/controllers/media_items/media_item_controller.ex +++ b/lib/pinchflat_web/controllers/media_items/media_item_controller.ex @@ -85,6 +85,7 @@ defmodule PinchflatWeb.MediaItems.MediaItemController do |> put_resp_header("accept-ranges", "bytes") |> put_resp_header("content-range", "bytes #{start_pos}-#{end_pos}/#{file_size}") |> put_resp_header("content-length", to_string(length)) + |> put_resp_header("content-disposition", "inline; filename=\"#{media_item.title}\"") |> send_file(206, media_item.media_filepath, start_pos, length) {:error, :invalid_range} -> @@ -92,8 +93,10 @@ defmodule PinchflatWeb.MediaItems.MediaItemController do conn |> put_resp_content_type(mime_type) - |> put_resp_header("content-length", to_string(file_size)) |> put_resp_header("accept-ranges", "bytes") + |> put_resp_header("content-range", "bytes 0-#{file_size - 1}/#{file_size}") + |> put_resp_header("content-length", to_string(file_size)) + |> put_resp_header("content-disposition", "inline; filename=\"#{media_item.title}\"") |> send_file(200, media_item.media_filepath) end else diff --git a/lib/pinchflat_web/controllers/media_items/media_item_html/show.html.heex b/lib/pinchflat_web/controllers/media_items/media_item_html/show.html.heex index 3f02e38..1f4d5bf 100644 --- a/lib/pinchflat_web/controllers/media_items/media_item_html/show.html.heex +++ b/lib/pinchflat_web/controllers/media_items/media_item_html/show.html.heex @@ -32,8 +32,16 @@