FIX: Missing extensions for non-image uploads due to 2b57239389.

This commit is contained in:
Guo Xiang Tan 2018-08-13 10:55:06 +08:00
parent ba022234c6
commit d10c9d7d75
2 changed files with 24 additions and 2 deletions

View File

@ -79,7 +79,7 @@ class UploadCreator
@upload.sha1 = sha1 @upload.sha1 = sha1
@upload.url = "" @upload.url = ""
@upload.origin = @opts[:origin][0...1000] if @opts[:origin] @upload.origin = @opts[:origin][0...1000] if @opts[:origin]
@upload.extension = image_type @upload.extension = image_type || File.extname(@filename)[1..10]
if FileHelper.is_image?(@filename) if FileHelper.is_image?(@filename)
@upload.width, @upload.height = ImageSizer.resize(*@image_info.size) @upload.width, @upload.height = ImageSizer.resize(*@image_info.size)

View File

@ -164,7 +164,29 @@ describe UploadsController do
expect(message).to contain_exactly(I18n.t("upload.images.size_not_found")) expect(message).to contain_exactly(I18n.t("upload.images.size_not_found"))
end end
describe 'when filename has the wrong extension' do describe 'when upload is not an image' do
before do
SiteSetting.authorized_extensions = 'txt'
end
let(:file) do
Rack::Test::UploadedFile.new(file_from_fixtures("utf-8.txt", "encodings"))
end
it 'should store the upload with the right extension' do
expect do
post "/uploads.json", params: { file: file, type: "composer" }
end.to change { Upload.count }.by(1)
upload = Upload.last
expect(upload.extension).to eq('txt')
expect(File.extname(upload.url)).to eq('.txt')
expect(upload.original_filename).to eq('utf-8.txt')
end
end
describe 'when image has the wrong extension' do
let(:file) do let(:file) do
Rack::Test::UploadedFile.new(file_from_fixtures("png_as.jpg")) Rack::Test::UploadedFile.new(file_from_fixtures("png_as.jpg"))
end end