code: def encode_multipart_formdata(self, fields, filename, verbose=False):
          
          BOUNDARY = '----------ThIs_Is_tHe_bouNdaRY_$'
          CRLF = '\r\n'
          content_type = 'multipart/form-data; boundary=%s' % BOUNDARY
          if verbose is True:
              print(('Encoding ' + filename + ' for upload...'))
          fin = open(filename, 'rb')
          fout = open(filename + '.b64', 'wb')
          fout.write(bytearray('--' + BOUNDARY + CRLF, 'utf-8'))
          fout.write(bytearray('Content-Disposition: form-data'
                               '; name="file"; filename="' +
                               filename + '"' + CRLF, "utf-8"))
          fout.write(bytearray('Content-Type: application/octet-stream' + CRLF,
                               'utf-8'))
          fout.write(bytearray(CRLF, 'utf-8'))
          shutil.copyfileobj(fin, fout)
          fout.write(bytearray(CRLF, 'utf-8'))
          fout.write(bytearray('--' + BOUNDARY + '--' + CRLF, 'utf-8'))
          fout.write(bytearray(CRLF, 'utf-8'))
          fout.close()
          fin.close()
          return content_type
docs: fields is a sequence of (name, value) elements for regular form fields.
          files is a sequence of (name, filename, value) elements for data
          to be uploaded as files
          Return (content_type, body) ready for httplib.HTTP instance