当前位置: 首页>>代码示例>>Python>>正文


Python httputil.parse_multipart_form_data函数代码示例

本文整理汇总了Python中tornado.httputil.parse_multipart_form_data函数的典型用法代码示例。如果您正苦于以下问题:Python parse_multipart_form_data函数的具体用法?Python parse_multipart_form_data怎么用?Python parse_multipart_form_data使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了parse_multipart_form_data函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: _on_request_body

 def _on_request_body(self, data):
     try:
         self._request.body = data
         content_type = self._request.headers.get("Content-Type", "")
         if self._request.method in ("POST", "PUT"):
             if content_type.startswith("application/x-www-form-urlencoded"):
                 arguments = parse_qs_bytes(native_str(self._request.body), keep_blank_values = True)
                 for name, values in arguments.iteritems():
                     values = [v for v in values if v is not None]
                     if values:
                         self._request.arguments.setdefault(name, []).extend(
                             values)
             elif content_type.startswith("multipart/form-data"):
                 fields = content_type.split(";")
                 for field in fields:
                     k, sep, v = field.strip().partition("=")
                     if k == "boundary" and v:
                         httputil.parse_multipart_form_data(
                             utf8(v), data,
                             self._request.arguments,
                             self._request.files)
                         break
                 else:
                     logging.warning("Invalid multipart/form-data")
         self.request_callback(self._request)
     except BadRequestException, e:
         logging.info("Malformed HTTP request from %s: %s",
                      self.address[0], e)
         logging.info('Request:\n%s', data)
         self.no_keep_alive = True
         if not self.stream.closed():
             self.stream.write("HTTP/1.1 400 Bad request\r\n\r\n", self._finish_request)
         return
开发者ID:hhru,项目名称:hh-tornado-old,代码行数:33,代码来源:httpserver.py

示例2: _on_request_body

 def _on_request_body(self, data):
     self.reset_connection_timeout()
     self._request.body = data
     content_type = self._request.headers.get("Content-Type", "")
     if self._request.method in ("POST", "PUT"):
         if content_type.startswith("application/x-www-form-urlencoded"):
             arguments = parse_qs_bytes(native_str(self._request.body))
             for name, values in arguments.iteritems():
                 values = [v for v in values if v]
                 if values:
                     self._request.arguments.setdefault(name, []).extend(
                         values)
         elif content_type.startswith("multipart/form-data"):
             fields = content_type.split(";")
             for field in fields:
                 k, sep, v = field.strip().partition("=")
                 if k == "boundary" and v:
                     httputil.parse_multipart_form_data(
                         utf8(v), data,
                         self._request.arguments,
                         self._request.files)
                     break
             else:
                 logging.warning("Invalid multipart/form-data")
     self.request_callback(self._request)
开发者ID:flodiebold,项目名称:tornado,代码行数:25,代码来源:httpserver.py

示例3: test_special_filenames

    def test_special_filenames(self):
        filenames = [
            "a;b.txt",
            'a"b.txt',
            'a";b.txt',
            'a;"b.txt',
            'a";";.txt',
            'a\\"b.txt',
            "a\\b.txt",
        ]
        for filename in filenames:
            logging.debug("trying filename %r", filename)
            str_data = """\
--1234
Content-Disposition: form-data; name="files"; filename="%s"

Foo
--1234--""" % filename.replace(
                "\\", "\\\\"
            ).replace(
                '"', '\\"'
            )
            data = utf8(str_data.replace("\n", "\r\n"))
            args, files = form_data_args()
            parse_multipart_form_data(b"1234", data, args, files)
            file = files["files"][0]
            self.assertEqual(file["filename"], filename)
            self.assertEqual(file["body"], b"Foo")
开发者ID:bdarnell,项目名称:tornado,代码行数:28,代码来源:httputil_test.py

示例4: _parse_distutils_message

    def _parse_distutils_message(self):
        # http://groups.google.com/group/python-tornado/browse_thread/thread/d0531e331c189c56?pli=1

        httputil.parse_multipart_form_data(
            self._boundary(),
            self.request.body.replace("\n", "\r\n"),
            self.request.arguments,
            self.request.files
        )
开发者ID:jaimegildesagredo,项目名称:viper,代码行数:9,代码来源:handlers.py

示例5: test_missing_headers

    def test_missing_headers(self):
        data = b('''\
--1234

Foo
--1234--''').replace(b("\n"), b("\r\n"))
        args = {}
        files = {}
        parse_multipart_form_data(b("1234"), data, args, files)
        self.assertEqual(files, {})
开发者ID:gregorynicholas,项目名称:tornado,代码行数:10,代码来源:httputil_test.py

示例6: test_line_does_not_end_with_correct_line_break

    def test_line_does_not_end_with_correct_line_break(self):
        data = b('''\
--1234
Content-Disposition: form-data; name="files"; filename="ab.txt"

Foo--1234--''').replace(b("\n"), b("\r\n"))
        args = {}
        files = {}
        parse_multipart_form_data(b("1234"), data, args, files)
        self.assertEqual(files, {})
开发者ID:gregorynicholas,项目名称:tornado,代码行数:10,代码来源:httputil_test.py

示例7: test_line_does_not_end_with_correct_line_break

    def test_line_does_not_end_with_correct_line_break(self):
        data = b'''\
--1234
Content-Disposition: form-data; name="files"; filename="ab.txt"

Foo--1234--'''.replace(b"\n", b"\r\n")
        args, files = form_data_args()
        with ExpectLog(gen_log, "Invalid multipart/form-data"):
            parse_multipart_form_data(b"1234", data, args, files)
        self.assertEqual(files, {})
开发者ID:leeclemens,项目名称:tornado,代码行数:10,代码来源:httputil_test.py

示例8: test_missing_headers

    def test_missing_headers(self):
        data = b'''\
--1234

Foo
--1234--'''.replace(b"\n", b"\r\n")
        args, files = form_data_args()
        with ExpectLog(gen_log, "multipart/form-data missing headers"):
            parse_multipart_form_data(b"1234", data, args, files)
        self.assertEqual(files, {})
开发者ID:leeclemens,项目名称:tornado,代码行数:10,代码来源:httputil_test.py

示例9: test_header_has_content_disposition_but_nothing_more

    def test_header_has_content_disposition_but_nothing_more(self):
        data = b("""\
--1234
Content-Disposition: form-data;

Foo
--1234--""").replace(b("\n"), b("\r\n"))
        args = {}
        files = {}
        parse_multipart_form_data(b("1234"), data, args, files)
        self.assertEqual(files, {})
开发者ID:igorsobreira,项目名称:tornado,代码行数:11,代码来源:httputil_test.py

示例10: test_invalid_content_disposition

    def test_invalid_content_disposition(self):
        data = b('''\
--1234
Content-Disposition: invalid; name="files"; filename="ab.txt"

Foo
--1234--''').replace(b("\n"), b("\r\n"))
        args = {}
        files = {}
        parse_multipart_form_data(b("1234"), data, args, files)
        self.assertEqual(files, {})
开发者ID:gregorynicholas,项目名称:tornado,代码行数:11,代码来源:httputil_test.py

示例11: test_missing_headers

    def test_missing_headers(self):
        data = b('''\
--1234

Foo
--1234--''').replace(b("\n"), b("\r\n"))
        args = {}
        files = {}
        with ExpectLog(gen_log, "multipart/form-data missing headers"):
            parse_multipart_form_data(b("1234"), data, args, files)
        self.assertEqual(files, {})
开发者ID:Aliced3645,项目名称:tornado,代码行数:11,代码来源:httputil_test.py

示例12: test_content_disposition_header_without_name_parameter

    def test_content_disposition_header_without_name_parameter(self):
        data = b("""\
--1234
Content-Disposition: form-data; filename="ab.txt"

Foo
--1234--""").replace(b("\n"), b("\r\n"))
        args = {}
        files = {}
        parse_multipart_form_data(b("1234"), data, args, files)
        self.assertEqual(files, {})
开发者ID:gregorynicholas,项目名称:tornado,代码行数:11,代码来源:httputil_test.py

示例13: test_content_disposition_header_without_name_parameter

    def test_content_disposition_header_without_name_parameter(self):
        data = b"""\
--1234
Content-Disposition: form-data; filename="ab.txt"

Foo
--1234--""".replace(b"\n", b"\r\n")
        args, files = form_data_args()
        with ExpectLog(gen_log, "multipart/form-data value missing name"):
            parse_multipart_form_data(b"1234", data, args, files)
        self.assertEqual(files, {})
开发者ID:leeclemens,项目名称:tornado,代码行数:11,代码来源:httputil_test.py

示例14: test_invalid_content_disposition

    def test_invalid_content_disposition(self):
        data = b'''\
--1234
Content-Disposition: invalid; name="files"; filename="ab.txt"

Foo
--1234--'''.replace(b"\n", b"\r\n")
        args, files = form_data_args()
        with ExpectLog(gen_log, "Invalid multipart/form-data"):
            parse_multipart_form_data(b"1234", data, args, files)
        self.assertEqual(files, {})
开发者ID:leeclemens,项目名称:tornado,代码行数:11,代码来源:httputil_test.py

示例15: test_boundary_starts_and_ends_with_quotes

    def test_boundary_starts_and_ends_with_quotes(self):
        data = b'''\
--1234
Content-Disposition: form-data; name="files"; filename="ab.txt"

Foo
--1234--'''.replace(b"\n", b"\r\n")
        args, files = form_data_args()
        parse_multipart_form_data(b'"1234"', data, args, files)
        file = files["files"][0]
        self.assertEqual(file["filename"], "ab.txt")
        self.assertEqual(file["body"], b"Foo")
开发者ID:leeclemens,项目名称:tornado,代码行数:12,代码来源:httputil_test.py


注:本文中的tornado.httputil.parse_multipart_form_data函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。