Commit 9c35456d authored by lain's avatar lain
Browse files

URI encode filenames...

parent 9fd86402
...@@ -13,7 +13,7 @@ def store(%Plug.Upload{} = file) do ...@@ -13,7 +13,7 @@ def store(%Plug.Upload{} = file) do
"url" => [%{ "url" => [%{
"type" => "Link", "type" => "Link",
"mediaType" => file.content_type, "mediaType" => file.content_type,
"href" => url_for(Path.join(uuid, file.filename)) "href" => url_for(Path.join(uuid, URI.encode(file.filename)))
}], }],
"name" => file.filename, "name" => file.filename,
"uuid" => uuid "uuid" => uuid
...@@ -38,7 +38,7 @@ def store(%{"img" => "data:image/" <> image_data}) do ...@@ -38,7 +38,7 @@ def store(%{"img" => "data:image/" <> image_data}) do
"url" => [%{ "url" => [%{
"type" => "Link", "type" => "Link",
"mediaType" => content_type, "mediaType" => content_type,
"href" => url_for(Path.join(uuid, filename)) "href" => url_for(Path.join(uuid, URI.encode(filename)))
}], }],
"name" => filename, "name" => filename,
"uuid" => uuid "uuid" => uuid
......
...@@ -4,9 +4,10 @@ defmodule Pleroma.UploadTest do ...@@ -4,9 +4,10 @@ defmodule Pleroma.UploadTest do
describe "Storing a file" do describe "Storing a file" do
test "copies the file to the configured folder" do test "copies the file to the configured folder" do
file = %Plug.Upload{content_type: "image/jpg", path: Path.absname("test/fixtures/image.jpg"), filename: "an_image.jpg"} file = %Plug.Upload{content_type: "image/jpg", path: Path.absname("test/fixtures/image.jpg"), filename: "an image.jpg"}
data = Upload.store(file) data = Upload.store(file)
assert data["name"] == "an_image.jpg" assert data["name"] == "an image.jpg"
assert List.first(data["url"])["href"] == "http://localhost:4001/media/#{data["uuid"]}/an%20image.jpg"
end end
end end
end end
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment