Patch #24186 ยป 0001-Shorten-long-attachment-disk-filenames.patch
| app/models/attachment.rb | ||
|---|---|---|
| 413 | 413 |
def self.disk_filename(filename, directory=nil) |
| 414 | 414 |
timestamp = DateTime.now.strftime("%y%m%d%H%M%S")
|
| 415 | 415 |
ascii = '' |
| 416 |
if filename =~ %r{^[a-zA-Z0-9_\.\-]*$}
|
|
| 416 |
if filename =~ %r{^[a-zA-Z0-9_\.\-]*$} && filename.length <= 50
|
|
| 417 | 417 |
ascii = filename |
| 418 | 418 |
else |
| 419 | 419 |
ascii = Digest::MD5.hexdigest(filename) |
| test/unit/attachment_test.rb | ||
|---|---|---|
| 81 | 81 |
assert_nil a.content_type |
| 82 | 82 |
end |
| 83 | 83 | |
| 84 |
def test_shorted_filename_if_too_long |
|
| 85 |
file = uploaded_test_file("testfile.txt", "text/plain")
|
|
| 86 |
file.instance_variable_set('@original_filename', "#{'a'*251}.txt")
|
|
| 87 |
assert 255, file.original_filename.length |
|
| 88 | ||
| 89 |
a = Attachment.new(:container => Issue.find(1), |
|
| 90 |
:file => file, |
|
| 91 |
:author => User.find(1)) |
|
| 92 |
assert a.save |
|
| 93 |
a.reload |
|
| 94 |
assert_equal 12 + 1 + 32 + 4, a.disk_filename.length |
|
| 95 |
end |
|
| 96 | ||
| 84 | 97 |
def test_copy_should_preserve_attributes |
| 85 | 98 |
a = Attachment.find(1) |
| 86 | 99 |
copy = a.copy |