aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaelwenn (lanodan) Monnier <contact@hacktivis.me>2019-01-15 07:57:48 +0100
committerHaelwenn (lanodan) Monnier <contact@hacktivis.me>2019-01-15 07:57:48 +0100
commit9fcdca1bdca04bdb52b7ac9a0d69e0886b12cb87 (patch)
tree44e259bad4646eeca47f7bbcb473adb3faea1a91
parente3eb75bd234c8e21ff937d4f9b2a4a1328007e32 (diff)
downloadpleroma-9fcdca1bdca04bdb52b7ac9a0d69e0886b12cb87.tar.gz
Upload: Fix uploading with a : in the filename
-rw-r--r--lib/pleroma/upload.ex1
-rw-r--r--test/upload_test.exs6
2 files changed, 4 insertions, 3 deletions
diff --git a/lib/pleroma/upload.ex b/lib/pleroma/upload.ex
index 1d8b073af..b19920dff 100644
--- a/lib/pleroma/upload.ex
+++ b/lib/pleroma/upload.ex
@@ -219,6 +219,7 @@ defmodule Pleroma.Upload do
path
|> URI.encode()
|> String.replace("?", "%3F")
+ |> String.replace(":", "%3A")
[base_url, "media", path]
|> Path.join()
diff --git a/test/upload_test.exs b/test/upload_test.exs
index ffef74270..b2d9eca38 100644
--- a/test/upload_test.exs
+++ b/test/upload_test.exs
@@ -153,19 +153,19 @@ defmodule Pleroma.UploadTest do
assert Path.basename(attachment_url["href"]) == "an%E2%80%A6%20image.jpg"
end
- test "replaces ? (question-mark) to %3f" do
+ test "replaces : (colon) and ? (question-mark) to %3A and %3F (respectively)" do
File.cp!("test/fixtures/image.jpg", "test/fixtures/image_tmp.jpg")
file = %Plug.Upload{
content_type: "image/jpg",
path: Path.absname("test/fixtures/image_tmp.jpg"),
- filename: "an?image.jpg"
+ filename: "is:an?image.jpg"
}
{:ok, data} = Upload.store(file)
[attachment_url | _] = data["url"]
- assert Path.basename(attachment_url["href"]) == "an%3Fimage.jpg"
+ assert Path.basename(attachment_url["href"]) == "is%3Aan%3Fimage.jpg"
end
end
end