From e34fc869c42ec60ba20e138137129ebb24c4965d Mon Sep 17 00:00:00 2001 From: Kieran Eglin Date: Mon, 27 May 2024 10:59:22 -0700 Subject: [PATCH] Adds link for opening local stream --- .../controllers/media_items/media_item_controller.ex | 5 ++++- .../media_items/media_item_html/show.html.heex | 10 +++++++++- .../controllers/media_item_controller_test.exs | 3 +++ 3 files changed, 16 insertions(+), 2 deletions(-) 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..245b0d8 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 @@ -33,7 +33,15 @@