require_dependency "file_helper" class AvatarUploadService attr_accessor :source attr_reader :filesize, :filename, :file def initialize(file, source) @source = source @file, @filename, @filesize = construct(file) end def construct(file) case source when :url tmp = FileHelper.download(file, SiteSetting.max_image_size_kb.kilobytes, "discourse-avatar") [tmp, File.basename(URI.parse(file).path), File.size(tmp)] when :image [file.tempfile, file.original_filename, File.size(file.tempfile)] end end end