(fields, files)
return content_type, body
Encode form fields for multipart/form-data.

  Args:
    fields: A sequence of (name, value) elements for regular form fields.
    files: A sequence of (name, filename, value) elements for data to be
           uploaded as files.
  Returns:
    (content_type, body) ready for httplib.HTTP instance.

  Source:
    http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/146306
Encode form fields for multipart/form-data.
Encode form fields for multipart / form - data .
def EncodeMultipartFormData(fields, files):
  """Encode form fields for multipart/form-data.

  Args:
    fields: A sequence of (name, value) elements for regular form fields.
    files: A sequence of (name, filename, value) elements for data to be
           uploaded as files.
  Returns:
    (content_type, body) ready for httplib.HTTP instance.

  Source:
    http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/146306
  """
  BOUNDARY = '-M-A-G-I-C---B-O-U-N-D-A-R-Y-'
  CRLF = '\r\n'
  lines = []
  for (key, value) in fields:
    lines.append('--' + BOUNDARY)
    lines.append('Content-Disposition: form-data; name="%s"' % key)
    lines.append('')
    if isinstance(value, unicode):
      value = value.encode('utf-8')
    lines.append(value)
  for (key, filename, value) in files:
    lines.append('--' + BOUNDARY)
    lines.append('Content-Disposition: form-data; name="%s"; filename="%s"' %
             (key, filename))
    lines.append('Content-Type: %s' % GetContentType(filename))
    lines.append('')
    if isinstance(value, unicode):
      value = value.encode('utf-8')
    lines.append(value)
  lines.append('--' + BOUNDARY + '--')
  lines.append('')
  body = CRLF.join(lines)
  content_type = 'multipart/form-data; boundary=%s' % BOUNDARY
  return content_type, body
def EncodeMultipartFormData ( fields , files ) : BOUNDARY = '-M-A-G-I-C---B-O-U-N-D-A-R-Y-' CRLF = '\r\n' lines = [ ] for ( key , value ) in fields : lines . append ( '--' + BOUNDARY ) lines . append ( 'Content-Disposition: form-data; name="%s"' % key ) lines . append ( '' ) if isinstance ( value , unicode ) : value = value . encode ( 'utf-8' ) lines . append ( value ) for ( key , filename , value ) in files : lines . append ( '--' + BOUNDARY ) lines . append ( 'Content-Disposition: form-data; name="%s"; filename="%s"' % ( key , filename ) ) lines . append ( 'Content-Type: %s' % GetContentType ( filename ) ) lines . append ( '' ) if isinstance ( value , unicode ) : value = value . encode ( 'utf-8' ) lines . append ( value ) lines . append ( '--' + BOUNDARY + '--' ) lines . append ( '' ) body = CRLF . join ( lines ) content_type = 'multipart/form-data; boundary=%s' % BOUNDARY return content_type , body