* finished Issue 111: Garbled filenames on dmsf file forder in server side
git-svn-id: http://redmine-dmsf.googlecode.com/svn/trunk/redmine_dmsf@204 5e329b0b-a2ee-ea63-e329-299493fc886d
This commit is contained in:
parent
ccc732aff2
commit
b36990bb8a
@ -17,6 +17,7 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
require "tmpdir"
|
||||
require "digest/md5"
|
||||
|
||||
module DmsfHelper
|
||||
|
||||
@ -37,8 +38,16 @@ module DmsfHelper
|
||||
# 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\.\-]/,'_')
|
||||
# replace all non alphanumeric, hyphens or periods with underscore
|
||||
just_filename = just_filename.gsub(/[^\w\.\-]/,'_')
|
||||
|
||||
unless just_filename =~ %r{^[a-zA-Z0-9_\.\-]*$}
|
||||
# keep the extension if any
|
||||
extension = $1 if just_filename =~ %r{(\.[a-zA-Z0-9]+)$}
|
||||
just_filename = Digest::MD5.hexdigest(just_filename) << extension
|
||||
end
|
||||
|
||||
just_filename
|
||||
end
|
||||
|
||||
def self.filetype_css(filename)
|
||||
|
||||
@ -188,12 +188,13 @@ class DmsfFileRevision < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def new_storage_filename
|
||||
raise DmsfAccessError, "File id is not set" unless self.file.id
|
||||
filename = DmsfHelper.sanitize_filename(self.name)
|
||||
timestamp = DateTime.now.strftime("%y%m%d%H%M%S")
|
||||
while File.exist?(File.join(DmsfFile.storage_path, "#{timestamp}_#{self.id}_#{filename}"))
|
||||
while File.exist?(File.join(DmsfFile.storage_path, "#{timestamp}_#{self.file.id}_#{filename}"))
|
||||
timestamp.succ!
|
||||
end
|
||||
"#{timestamp}_#{file.id}_#{filename}"
|
||||
"#{timestamp}_#{self.file.id}_#{filename}"
|
||||
end
|
||||
|
||||
def copy_file_content(open_file)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user