Commit 6f0126385d04b4d19df7453fc2bd69f1ae8c3f25
Exists in
spb-stable
and in
3 other branches
Merge pull request #6313 from jvanbaarsen/fix-6207-msi-mimetype
Fixes #6207 Allow raw download of *.msi files
Showing
1 changed file
with
13 additions
and
5 deletions
Show diff stats
app/controllers/projects/raw_controller.rb
@@ -11,11 +11,7 @@ class Projects::RawController < Projects::ApplicationController | @@ -11,11 +11,7 @@ class Projects::RawController < Projects::ApplicationController | ||
11 | @blob = @repository.blob_at(@commit.id, @path) | 11 | @blob = @repository.blob_at(@commit.id, @path) |
12 | 12 | ||
13 | if @blob | 13 | if @blob |
14 | - type = if @blob.mime_type =~ /html|javascript/ | ||
15 | - 'text/plain; charset=utf-8' | ||
16 | - else | ||
17 | - @blob.mime_type | ||
18 | - end | 14 | + type = get_blob_type |
19 | 15 | ||
20 | headers['X-Content-Type-Options'] = 'nosniff' | 16 | headers['X-Content-Type-Options'] = 'nosniff' |
21 | 17 | ||
@@ -29,5 +25,17 @@ class Projects::RawController < Projects::ApplicationController | @@ -29,5 +25,17 @@ class Projects::RawController < Projects::ApplicationController | ||
29 | not_found! | 25 | not_found! |
30 | end | 26 | end |
31 | end | 27 | end |
28 | + | ||
29 | + private | ||
30 | + | ||
31 | + def get_blob_type | ||
32 | + if @blob.mime_type =~ /html|javascript/ | ||
33 | + 'text/plain; charset=utf-8' | ||
34 | + elsif @blob.name =~ /(?:msi|exe|rar|r0\d|7z|7zip|zip)$/ | ||
35 | + 'application/octet-stream' | ||
36 | + else | ||
37 | + @blob.mime_type | ||
38 | + end | ||
39 | + end | ||
32 | end | 40 | end |
33 | 41 |