WIP: Stop mangling filenames

This commit is contained in:
rinpatch 2019-03-12 09:10:19 +03:00
parent 8e6b850610
commit 5a73cae2be
2 changed files with 14 additions and 6 deletions

View File

@ -24,6 +24,16 @@ defmodule Pleroma.Plugs.UploadedMedia do
end
def call(%{request_path: <<"/", @path, "/", file::binary>>} = conn, opts) do
conn =
case fetch_query_params(conn) do
%{query_params: %{"name" => name}} = conn ->
conn
|> put_resp_header("Content-Disposition", "filename=\"#{name}\"")
conn ->
conn
end
config = Pleroma.Config.get([Pleroma.Upload])
with uploader <- Keyword.fetch!(config, :uploader),

View File

@ -70,7 +70,7 @@ defmodule Pleroma.Upload do
%{
"type" => "Link",
"mediaType" => upload.content_type,
"href" => url_from_spec(opts.base_url, url_spec)
"href" => url_from_spec(opts.base_url, url_spec, upload.name)
}
],
"name" => Map.get(opts, :description) || upload.name
@ -219,14 +219,12 @@ defmodule Pleroma.Upload do
tmp_path
end
defp url_from_spec(base_url, {:file, path}) do
path =
path
|> URI.encode(&char_unescaped?/1)
defp url_from_spec(base_url, {:file, path}, name) do
path = URI.encode(path, &char_unescaped?/1) <> "?name=#{URI.encode(name, &char_unescaped?/1)}"
[base_url, "media", path]
|> Path.join()
end
defp url_from_spec(_base_url, {:url, url}), do: url
defp url_from_spec(_base_url, {:url, url}, _name), do: url
end