Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Pleroma
pleroma
Commits
0a95b559
Commit
0a95b559
authored
Jun 14, 2018
by
normandy
Browse files
Add missing file extension if file does not have one
parent
678df59d
Changes
2
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/upload.ex
View file @
0a95b559
...
...
@@ -86,10 +86,15 @@ def upload_path do
end
defp
create_name
(
uuid
,
ext
,
type
)
do
if
type
==
"application/octet-stream"
do
String
.
downcase
(
Enum
.
join
([
uuid
,
ext
],
"."
))
else
String
.
downcase
(
Enum
.
join
([
uuid
,
List
.
last
(
String
.
split
(
type
,
"/"
))],
"."
))
case
type
do
"application/octet-stream"
->
String
.
downcase
(
Enum
.
join
([
uuid
,
ext
],
"."
))
"audio/mpeg"
->
String
.
downcase
(
Enum
.
join
([
uuid
,
"mp3"
],
"."
))
_
->
String
.
downcase
(
Enum
.
join
([
uuid
,
List
.
last
(
String
.
split
(
type
,
"/"
))],
"."
))
end
end
...
...
@@ -105,7 +110,21 @@ defp get_name(file, uuid, type, should_dedupe) do
if
should_dedupe
do
create_name
(
uuid
,
List
.
last
(
String
.
split
(
file
.
filename
,
"."
)),
type
)
else
file
.
filename
unless
String
.
contains?
(
file
.
filename
,
"."
)
do
case
type
do
"image/png"
->
file
.
filename
<>
".png"
"image/jpeg"
->
file
.
filename
<>
".jpg"
"image/gif"
->
file
.
filename
<>
".gif"
"video/webm"
->
file
.
filename
<>
".webm"
"video/mp4"
->
file
.
filename
<>
".mp4"
"audio/mpeg"
->
file
.
filename
<>
".mp3"
"audio/ogg"
->
file
.
filename
<>
".ogg"
"audio/wav"
->
file
.
filename
<>
".wav"
_
->
file
.
filename
end
else
file
.
filename
end
end
end
...
...
test/upload_test.exs
View file @
0a95b559
...
...
@@ -43,5 +43,18 @@ test "fixes incorrect content type" do
data
=
Upload
.
store
(
file
,
true
)
assert
hd
(
data
[
"url"
])[
"mediaType"
]
==
"image/jpeg"
end
test
"adds missing extension"
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"
}
data
=
Upload
.
store
(
file
,
false
)
assert
data
[
"name"
]
==
"an [image.jpg"
end
end
end
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment