mirror of
https://github.com/neocities/neocities.git
synced 2025-04-25 01:32:36 +02:00
fix for uploads with multiple directorys and same filenames
This commit is contained in:
parent
f8697e50a6
commit
2c5ef5195b
2 changed files with 17 additions and 5 deletions
|
@ -124,10 +124,7 @@ post '/site_files/upload' do
|
||||||
dir_name = params[:dir] if params[:dir]
|
dir_name = params[:dir] if params[:dir]
|
||||||
|
|
||||||
unless params[:file_paths].nil? || params[:file_paths].empty? || params[:file_paths].length == 0
|
unless params[:file_paths].nil? || params[:file_paths].empty? || params[:file_paths].length == 0
|
||||||
|
file_path = params[:file_paths][i]
|
||||||
file_path = params[:file_paths].select {|file_path|
|
|
||||||
file[:filename] == Pathname(file_path).basename.to_s
|
|
||||||
}.first
|
|
||||||
|
|
||||||
unless file_path.nil?
|
unless file_path.nil?
|
||||||
dir_name += '/' + Pathname(file_path).dirname.to_s
|
dir_name += '/' + Pathname(file_path).dirname.to_s
|
||||||
|
@ -161,7 +158,7 @@ post '/site_files/delete' do
|
||||||
require_login
|
require_login
|
||||||
path = HTMLEntities.new.decode params[:filename]
|
path = HTMLEntities.new.decode params[:filename]
|
||||||
current_site.delete_file path
|
current_site.delete_file path
|
||||||
flash[:success] = "Deleted #{params[:filename]}. Please note it can take up to 30 minutes for deleted files to stop being viewable on your site."
|
flash[:success] = "Deleted #{params[:filename]}."
|
||||||
|
|
||||||
dirname = Pathname(path).dirname
|
dirname = Pathname(path).dirname
|
||||||
dir_query = dirname.nil? || dirname.to_s == '.' ? '' : "?dir=#{Rack::Utils.escape dirname}"
|
dir_query = dirname.nil? || dirname.to_s == '.' ? '' : "?dir=#{Rack::Utils.escape dirname}"
|
||||||
|
|
|
@ -213,6 +213,21 @@ describe 'site_files' do
|
||||||
PurgeCacheWorker.jobs.select {|j| j['args'].last == '/subdir/'}.length.must_equal 1
|
PurgeCacheWorker.jobs.select {|j| j['args'].last == '/subdir/'}.length.must_equal 1
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'succeeds with multiple files' do
|
||||||
|
upload(
|
||||||
|
'file_paths' => ['one/test.jpg', 'two/test.jpg'],
|
||||||
|
'files' => [
|
||||||
|
Rack::Test::UploadedFile.new('./tests/files/test.jpg', 'image/jpeg'),
|
||||||
|
Rack::Test::UploadedFile.new('./tests/files/test.jpg', 'image/jpeg')
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
@site.site_files.select {|s| s.path == 'one'}.length.must_equal 1
|
||||||
|
@site.site_files.select {|s| s.path == 'one/test.jpg'}.length.must_equal 1
|
||||||
|
@site.site_files.select {|s| s.path == 'two'}.length.must_equal 1
|
||||||
|
@site.site_files.select {|s| s.path == 'two/test.jpg'}.length.must_equal 1
|
||||||
|
end
|
||||||
|
|
||||||
it 'succeeds with valid file' do
|
it 'succeeds with valid file' do
|
||||||
initial_space_used = @site.space_used
|
initial_space_used = @site.space_used
|
||||||
uploaded_file = Rack::Test::UploadedFile.new('./tests/files/test.jpg', 'image/jpeg')
|
uploaded_file = Rack::Test::UploadedFile.new('./tests/files/test.jpg', 'image/jpeg')
|
||||||
|
|
Loading…
Add table
Reference in a new issue