git-svn-id: http://redmine-dmsf.googlecode.com/svn/trunk/redmine_dmsf@4 5e329b0b-a2ee-ea63-e329-299493fc886d
27 lines
662 B
Ruby
27 lines
662 B
Ruby
require "tmpdir"
|
|
|
|
module DmsfHelper
|
|
|
|
def self.temp_dir
|
|
Dir.tmpdir
|
|
end
|
|
|
|
def self.temp_filename(filename)
|
|
filename = sanitize_filename(filename)
|
|
timestamp = DateTime.now.strftime("%y%m%d%H%M%S")
|
|
while File.exist?(File.join(temp_dir, "#{timestamp}_#{filename}"))
|
|
timestamp.succ!
|
|
end
|
|
"#{timestamp}_#{filename}"
|
|
end
|
|
|
|
def self.sanitize_filename(filename)
|
|
# get only the filename, not the whole path
|
|
just_filename = File.basename(filename.gsub('\\\\', '/'))
|
|
|
|
# Finally, replace all non alphanumeric, hyphens or periods with underscore
|
|
just_filename.gsub(/[^\w\.\-]/,'_')
|
|
end
|
|
|
|
end
|