    # File lib/merb-core/controller/mixins/controller.rb, line 183
        def send_file(file, opts={})
          opts.update(Merb::Const::DEFAULT_SEND_FILE_OPTIONS.merge(opts))
          disposition = opts[:disposition].dup || 'attachment'
          disposition << %(; filename="#{opts[:filename] ? opts[:filename] : File.basename(file)}")
          headers.update(
            'Content-Type'              => opts[:type].strip,  # fixes a problem with extra '\r' with some browsers
            'Content-Disposition'       => disposition,
            'Content-Transfer-Encoding' => 'binary'
          )
          Proc.new do |response|
            file = File.open(file, 'rb')
            while chunk = file.read(16384)
              response.write chunk
            end
            file.close
          end
        end