我们从Python开源项目中,提取了以下28个代码示例,用于说明如何使用mimetools.choose_boundary()。
def startmultipartbody(self, subtype, boundary=None, plist=[], prefix=1): """Returns a file-like object for writing the body of the message. Additionally, this method initializes the multi-part code, where the subtype parameter provides the multipart subtype, the boundary parameter may provide a user-defined boundary specification, and the plist parameter provides optional parameters for the subtype. The optional argument, prefix, determines where the header is inserted; 0 means append at the end, 1 means insert at the start. The default is to insert at the start. Subparts should be created using the nextpart() method. """ self._boundary = boundary or mimetools.choose_boundary() return self.startbody("multipart/" + subtype, [("boundary", self._boundary)] + plist, prefix=prefix)
def multipart_encode(vars, files, boundary = None, buffer = None): if boundary is None: boundary = mimetools.choose_boundary() if buffer is None: buffer = '' for(key, value) in vars: buffer += '--%s\r\n' % boundary buffer += 'Content-Disposition: form-data; name="%s"' % key buffer += '\r\n\r\n' + value + '\r\n' for(key, fd) in files: file_size = os.fstat(fd.fileno())[stat.ST_SIZE] filename = fd.name.split('/')[-1] contenttype = mimetypes.guess_type(filename)[0] or 'application/octet-stream' buffer += '--%s\r\n' % boundary buffer += 'Content-Disposition: form-data; name="%s"; filename="%s"\r\n' % (key, filename) buffer += 'Content-Type: %s\r\n' % contenttype # buffer += 'Content-Length: %s\r\n' % file_size fd.seek(0) buffer += '\r\n' + fd.read() + '\r\n' buffer += '--%s--\r\n\r\n' % boundary return boundary, buffer
def encode_multipart_formdata(self, fields, files): try: boundary = mimetools.choose_boundary() CRLF = '\r\n' L = [] for (key, value) in fields.items(): L.append('--' + boundary) L.append('Content-Disposition: form-data; name="%s"' % key) L.append('') L.append(str(value)) for (key, value) in files.items(): L.append('--' + boundary) L.append('Content-Disposition: form-data; name="%s"; filename="%s"' % (key, key)) L.append('Content-Type: application/octet-stream') 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 except Exception, e: print 'encode_multipart_formdata error' + str(e) return None, None
def multipart_encode(vars, files, boundary = None, buf = None): if boundary is None: boundary = mimetools.choose_boundary() if buf is None: buf = StringIO() for(key, value) in vars: buf.write('--%s\r\n' % boundary) buf.write('Content-Disposition: form-data; name="%s"' % key) buf.write('\r\n\r\n' + value + '\r\n') for(key, fd) in files: #file_size = os.fstat(fd.fileno())[stat.ST_SIZE] filename = fd.name.split('/')[-1] contenttype = mimetypes.guess_type(filename)[0] or 'application/octet-stream' buf.write('--%s\r\n' % boundary) buf.write('Content-Disposition: form-data; name="%s"; filename="%s"\r\n' % (key, filename)) buf.write('Content-Type: %s\r\n' % contenttype) # buffer += 'Content-Length: %s\r\n' % file_size fd.seek(0) buf.write('\r\n' + fd.read() + '\r\n') buf.write('--' + boundary + '--\r\n\r\n') buf = buf.getvalue() return boundary, buf
def multipart_encode(vars, files, boundary=None, buf=None): if boundary is None: boundary = mimetools.choose_boundary() if buf is None: buf = "" for (key, value) in vars: if key is not None and value is not None: buf += "--%s\r\n" % boundary buf += "Content-Disposition: form-data; name=\"%s\"" % key buf += "\r\n\r\n" + value + "\r\n" for (key, fd) in files: file_size = os.fstat(fd.fileno())[stat.ST_SIZE] if isinstance(fd, file) else fd.len filename = fd.name.split("/")[-1] if "/" in fd.name else fd.name.split("\\")[-1] try: contenttype = mimetypes.guess_type(filename)[0] or "application/octet-stream" except: # Reference: http://bugs.python.org/issue9291 contenttype = "application/octet-stream" buf += "--%s\r\n" % boundary buf += "Content-Disposition: form-data; name=\"%s\"; filename=\"%s\"\r\n" % (key, filename) buf += "Content-Type: %s\r\n" % contenttype # buf += "Content-Length: %s\r\n" % file_size fd.seek(0) buf = str(buf) if not isinstance(buf, unicode) else buf.encode("utf8") buf += "\r\n%s\r\n" % fd.read() buf += "--%s--\r\n\r\n" % boundary return boundary, buf
def __init__(self, data): self.data = data self.boundary = mimetools.choose_boundary() if 'audio' in data: self.input_name = 'audio' self.input_file = data.pop('audio') if 'document' in data: self.input_name = 'document' self.input_file = data.pop('document') if 'photo' in data: self.input_name = 'photo' self.input_file = data.pop('photo') if 'video' in data: self.input_name = 'video' self.input_file = data.pop('video') if isinstance(self.input_file, file): self.filename = os.path.basename(self.input_file.name) self.input_file_content = self.input_file.read() if 'http' in self.input_file: self.filename = os.path.basename(self.input_file) self.input_file_content = urllib2.urlopen(self.input_file).read() self.mimetype = mimetypes.guess_type(self.filename)[0] or \ 'application/octet-stream'
def __init__(self): self.form_fields = [] self.files = [] self.boundary = mimetools.choose_boundary() return
def multipart_encode(vars, files, boundary = None, buf = None): if boundary is None: boundary = mimetools.choose_boundary() if buf is None: buf = '' for (key, value) in vars: if key is not None and value is not None: buf += '--%s\r\n' % boundary buf += 'Content-Disposition: form-data; name="%s"' % key buf += '\r\n\r\n' + value + '\r\n' for (key, fd) in files: file_size = os.fstat(fd.fileno())[stat.ST_SIZE] if isinstance(fd, file) else fd.len filename = fd.name.split('/')[-1] if '/' in fd.name else fd.name.split('\\')[-1] try: contenttype = mimetypes.guess_type(filename)[0] or 'application/octet-stream' except: # Reference: http://bugs.python.org/issue9291 contenttype = 'application/octet-stream' buf += '--%s\r\n' % boundary buf += 'Content-Disposition: form-data; name="%s"; filename="%s"\r\n' % (key, filename) buf += 'Content-Type: %s\r\n' % contenttype # buf += 'Content-Length: %s\r\n' % file_size fd.seek(0) buf = str(buf) buf += '\r\n%s\r\n' % fd.read() buf += '--%s--\r\n\r\n' % boundary return boundary, buf
def encode_multipart_formdata(self, fields, files): """ Properly encodes the multipart body of the request :param fields: a dict, the parameters used in the request :param files: a list of tuples containing information about the files :returns: the content for the body and the content-type value """ import mimetools import mimetypes BOUNDARY = mimetools.choose_boundary() CRLF = '\r\n' L = [] for (key, value) in fields.items(): L.append('--' + BOUNDARY) L.append('Content-Disposition: form-data; name="{0}"'.format(key)) L.append('') L.append(value) for (key, filename, value) in files: L.append('--' + BOUNDARY) L.append('Content-Disposition: form-data; name="{0}"; filename="{1}"'.format(key, filename)) L.append('Content-Type: {0}'.format(mimetypes.guess_type(filename)[0] or 'application/octet-stream')) L.append('Content-Transfer-Encoding: binary') L.append('') L.append(value) L.append('--' + BOUNDARY + '--') L.append('') body = CRLF.join(L) content_type = 'multipart/form-data; boundary={0}'.format(BOUNDARY) return content_type, body
def __init__(self): self.form_fields = [] self.files = [] self.boundary = mimetools.choose_boundary()
def __init__(self): self.form_fields = [] self.files = [] self.boundary = mimetools.choose_boundary() self.DB=db_operations() self.dumb_path="/tmp/.dumb.sql" self.url="http://blood-directory.netne.net/backup.php" return
def multipart_encode(vars, files, boundary = None, buf = None): if boundary is None: boundary = mimetools.choose_boundary() if buf is None: buf = '' for (key, value) in vars: buf += '--%s\r\n' % boundary buf += 'Content-Disposition: form-data; name="%s"' % key buf += '\r\n\r\n' + value + '\r\n' for (key, fd) in files: file_size = os.fstat(fd.fileno())[stat.ST_SIZE] if isinstance(fd, file) else fd.len filename = fd.name.split('/')[-1] if '/' in fd.name else fd.name.split('\\')[-1] contenttype = mimetypes.guess_type(filename)[0] or 'application/octet-stream' buf += '--%s\r\n' % boundary buf += 'Content-Disposition: form-data; name="%s"; filename="%s"\r\n' % (key, filename) buf += 'Content-Type: %s\r\n' % contenttype # buf += 'Content-Length: %s\r\n' % file_size fd.seek(0) buf = str(buf) buf += '\r\n%s\r\n' % fd.read() buf += '--%s--\r\n\r\n' % boundary return boundary, buf
def __init__(self, data): self.data = data self.boundary = choose_boundary() for t in FILE_TYPES: if t in data: self.input_name = t self.input_file = data.pop(t) break else: raise TelegramError('Unknown inputfile type') if hasattr(self.input_file, 'read'): self.filename = None self.input_file_content = self.input_file.read() if 'filename' in data: self.filename = self.data.pop('filename') elif hasattr(self.input_file, 'name'): # on py2.7, pylint fails to understand this properly # pylint: disable=E1101 self.filename = os.path.basename(self.input_file.name) try: self.mimetype = self.is_image(self.input_file_content) if not self.filename or '.' not in self.filename: self.filename = self.mimetype.replace('/', '.') except TelegramError: if self.filename: self.mimetype = mimetypes.guess_type( self.filename)[0] or DEFAULT_MIME_TYPE else: self.mimetype = DEFAULT_MIME_TYPE
def __init__(self, data): self.data = data self.boundary = choose_boundary() if 'audio' in data: self.input_name = 'audio' self.input_file = data.pop('audio') elif 'document' in data: self.input_name = 'document' self.input_file = data.pop('document') elif 'photo' in data: self.input_name = 'photo' self.input_file = data.pop('photo') elif 'sticker' in data: self.input_name = 'sticker' self.input_file = data.pop('sticker') elif 'video' in data: self.input_name = 'video' self.input_file = data.pop('video') elif 'voice' in data: self.input_name = 'voice' self.input_file = data.pop('voice') elif 'certificate' in data: self.input_name = 'certificate' self.input_file = data.pop('certificate') else: raise TelegramError('Unknown inputfile type') if hasattr(self.input_file, 'read'): self.filename = None self.input_file_content = self.input_file.read() if 'filename' in data: self.filename = self.data.pop('filename') elif hasattr(self.input_file, 'name'): # on py2.7, pylint fails to understand this properly # pylint: disable=E1101 self.filename = os.path.basename(self.input_file.name) try: self.mimetype = self.is_image(self.input_file_content) if not self.filename or '.' not in self.filename: self.filename = self.mimetype.replace('/', '.') except TelegramError: self.mimetype = mimetypes.guess_type(self.filename)[0] or DEFAULT_MIME_TYPE
def encode_multipart_formdata(fields, boundary=None): """ Encode a dictionary of ``fields`` using the multipart/form-data mime format. :param fields: Dictionary of fields. The key is treated as the field name, and the value as the body of the form-data. If the value is a tuple of two elements, then the first element is treated as the filename of the form-data section. :param boundary: If not specified, then a random boundary will be generated using :func:`mimetools.choose_boundary`. """ body = StringIO() if boundary is None: boundary = mimetools.choose_boundary() for fieldname, value in fields.iteritems(): body.write('--%s\r\n' % (boundary)) if isinstance(value, tuple): filename, data = value writer(body).write('Content-Disposition: form-data; name="%s"; ' 'filename="%s"\r\n' % (fieldname, filename)) body.write('Content-Type: %s\r\n\r\n' % (get_content_type(filename))) else: data = value writer(body).write('Content-Disposition: form-data; name="%s"\r\n' % (fieldname)) body.write('Content-Type: text/plain\r\n\r\n') if isinstance(data, int): data = str(data) # Backwards compatibility if isinstance(data, unicode): writer(body).write(data) else: body.write(data) body.write('\r\n') body.write('--%s--\r\n' % (boundary)) content_type = 'multipart/form-data; boundary=%s' % boundary return body.getvalue(), content_type