Upload: Fix uploading with a ? in the filename
This commit is contained in:
parent
f20bfc9ea5
commit
e3eb75bd23
|
@ -215,7 +215,12 @@ defp tempfile_for_image(data) do
|
||||||
end
|
end
|
||||||
|
|
||||||
defp url_from_spec(base_url, {:file, path}) do
|
defp url_from_spec(base_url, {:file, path}) do
|
||||||
[base_url, "media", URI.encode(path)]
|
path =
|
||||||
|
path
|
||||||
|
|> URI.encode()
|
||||||
|
|> String.replace("?", "%3F")
|
||||||
|
|
||||||
|
[base_url, "media", path]
|
||||||
|> Path.join()
|
|> Path.join()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -152,5 +152,20 @@ test "escapes invalid characters in url" do
|
||||||
|
|
||||||
assert Path.basename(attachment_url["href"]) == "an%E2%80%A6%20image.jpg"
|
assert Path.basename(attachment_url["href"]) == "an%E2%80%A6%20image.jpg"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "replaces ? (question-mark) to %3f" 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"
|
||||||
|
}
|
||||||
|
|
||||||
|
{:ok, data} = Upload.store(file)
|
||||||
|
[attachment_url | _] = data["url"]
|
||||||
|
|
||||||
|
assert Path.basename(attachment_url["href"]) == "an%3Fimage.jpg"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue