From 5f5730fe2e77c3f4770bf564e58c7284cbf5992d Mon Sep 17 00:00:00 2001 From: "Watal M. Iwasaki" Date: Sun, 12 Jul 2020 17:37:20 +0900 Subject: [PATCH] Address the uploads issue #1584 '%20' in filenames are translated back to ' ' in both editor and file creation. --- lib/gollum/app.rb | 13 +++++++------ .../gollum/javascript/editor/gollum.editor.js | 1 + 2 files changed, 8 insertions(+), 6 deletions(-) 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 {