[#2497] Fix for png media proxy preview response headers (content-type & content-disposition).

This commit is contained in:
Ivan Tashkinov 2020-09-01 21:21:58 +03:00
parent 0a839d51a7
commit 6ce28c4091

View File

@ -67,7 +67,7 @@ defmodule Pleroma.Web.MediaProxy.MediaProxyController do
end
end
# TODO: find a workaround so avatar_static and banner_static can work.
# TODO: find a workaround so avatar_static and header_static can work.
# Those only permit GIFs for animation, so we have to permit a way to
# allow those to get real static variants.
defp handle_preview("image/gif" = _content_type, conn, url) do
@ -107,7 +107,7 @@ defmodule Pleroma.Web.MediaProxy.MediaProxyController do
}
) do
conn
|> put_preview_response_headers()
|> put_preview_response_headers("image/png", "preview.png")
|> send_resp(200, thumbnail_binary)
else
_ ->
@ -145,10 +145,10 @@ defmodule Pleroma.Web.MediaProxy.MediaProxyController do
end
end
defp put_preview_response_headers(conn) do
defp put_preview_response_headers(conn, content_type \\ "image/jpeg", filename \\ "preview.jpg") do
conn
|> put_resp_header("content-type", "image/jpeg")
|> put_resp_header("content-disposition", "inline; filename=\"preview.jpg\"")
|> put_resp_header("content-type", content_type)
|> put_resp_header("content-disposition", "inline; filename=\"#{filename}\"")
|> put_resp_header("cache-control", "max-age=0, private, must-revalidate")
end