diff --git a/app/models/upload.rb b/app/models/upload.rb index 055b396e272..a9907954922 100644 --- a/app/models/upload.rb +++ b/app/models/upload.rb @@ -84,7 +84,7 @@ class Upload < ActiveRecord::Base # always try to get the path uri = begin - URI(url) + URI(URI.unescape(url)) rescue URI::InvalidURIError end diff --git a/spec/models/upload_spec.rb b/spec/models/upload_spec.rb index e7d9fdde7a8..a7c0d4ab0e8 100644 --- a/spec/models/upload_spec.rb +++ b/spec/models/upload_spec.rb @@ -87,6 +87,7 @@ describe Upload do it "doesn't blow up with an invalid URI" do expect { Upload.get_from_url("http://ip:port/index.html") }.not_to raise_error + expect { Upload.get_from_url("mailto:admin%40example.com") }.not_to raise_error end describe "s3 store" do