(fields, files)
return content_type, body
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
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
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
def encode_multipart_formdata(fields, files):
    """
    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
    """
    BOUNDARY = '----------ThIs_Is_tHe_bouNdaRY_$'
    CRLF = '\r\n'
    L = []
    for (key, value) in fields:
        L.append('--' + BOUNDARY)
        L.append('Content-Disposition: form-data; name="%s"' % key)
        L.append('')
        L.append(value)
    for (key, filename, value) in files:
        L.append('--' + BOUNDARY)
        L.append('Content-Disposition: form-data; name="%s"; filename="%s"' % (key, filename))
        L.append('Content-Type: %s' % get_content_type(filename))
        L.append('')
        L.append(value)
    L.append('--' + BOUNDARY + '--')
    L.append('')
    body = CRLF.join(L)
    content_type = 'multipart/form-data; boundary=%s' % BOUNDARY
    return content_type, body
def encode_multipart_formdata ( fields , files ) : BOUNDARY = '----------ThIs_Is_tHe_bouNdaRY_$' CRLF = '\r\n' L = [ ] for ( key , value ) in fields : L . append ( '--' + BOUNDARY ) L . append ( 'Content-Disposition: form-data; name="%s"' % key ) L . append ( '' ) L . append ( value ) for ( key , filename , value ) in files : L . append ( '--' + BOUNDARY ) L . append ( 'Content-Disposition: form-data; name="%s"; filename="%s"' % ( key , filename ) ) L . append ( 'Content-Type: %s' % get_content_type ( filename ) ) L . append ( '' ) L . append ( value ) L . append ( '--' + BOUNDARY + '--' ) L . append ( '' ) body = CRLF . join ( L ) content_type = 'multipart/form-data; boundary=%s' % BOUNDARY return content_type , body