diff --git a/lib/gollum/app.rb b/lib/gollum/app.rb index 621f9f74..dafecb76 100644 --- a/lib/gollum/app.rb +++ b/lib/gollum/app.rb @@ -230,14 +230,15 @@ module Precious halt 500 unless tempfile.is_a? Tempfile if wiki.per_page_uploads - # remove base_url and gollum/* subpath if necessary - dir = request.referer. - sub(request.base_url, ''). - sub(/.*gollum\/[-\w]+\//, '') + dir = request.referer.sub(request.base_url, '') # remove base path if it is set - dir = dir.sub(wiki.base_path, '') if wiki.base_path + dir.sub!(/^#{wiki.base_path}/, '') if wiki.base_path + # remove base_url and gollum/* subpath if necessary + dir.sub!(/^\/gollum\/[-\w]+\//, '') # remove file extension - dir = dir.sub(::File.extname(dir), '') + dir.sub!(/#{::File.extname(dir)}$/, '') + # revert escaped whitespaces + dir.gsub!(/%20/, ' ') dir = ::File.join('uploads', dir) else # store all uploads together diff --git a/lib/gollum/public/gollum/javascript/editor/gollum.editor.js b/lib/gollum/public/gollum/javascript/editor/gollum.editor.js index 3ec550a5..136c543d 100755 --- a/lib/gollum/public/gollum/javascript/editor/gollum.editor.js +++ b/lib/gollum/public/gollum/javascript/editor/gollum.editor.js @@ -299,6 +299,7 @@ var ext = file.name.split('.').pop().toLowerCase() var image_ext = ['jpg', 'jpeg', 'tif', 'tiff', 'png', 'gif', 'svg', 'bmp'] // Link directly to image files + uploadDest = uploadDest.replace(/%20/g, ' '); if ((image_ext.indexOf(ext) > -1)) { var text = '[[/' + uploadDest + '/' + file.name + ']]'; } else {