Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  requestparser.py   Sprache: Python

 
#!/usr/bin/env python3
import os
import sys
from urllib import parse
import multipart https://github.com/andrew-d/python-multipart (`apt install python3-multipart`)
import shutil


try:  # Windows needs stdio set for binary mode.
    import msvcrt

    msvcrt.setmode(0, os.O_BINARY)  # stdin  = 0
    msvcrt.setmode(1, os.O_BINARY)  # stdout = 1
except ImportError:
    pass


class FileItem:

    def __init__(self, mparse_item):
        self.item = mparse_item

    @property
    def file_name(self):
        return os.path.basename(self.item.file_name.decode())

    def save_to(self, destpath: str):
        fsrc = self.item.file_object
        fsrc.seek(0)
        with open(destpath, 'wb'as fd:
            shutil.copyfileobj(fsrc, fd)


def get_request_params():
    oforms = {}
    ofiles = {}
    if "REQUEST_URI" in os.environ:
        qforms = parse.parse_qs(parse.urlsplit(os.environ["REQUEST_URI"]).query)
        for name, values in qforms.items():
            oforms[name] = values[0]
    if "CONTENT_TYPE" in os.environ:
        ctype = os.environ["CONTENT_TYPE"]
        if ctype == "application/x-www-form-urlencoded":
            s = sys.stdin.read()
            qforms = parse.parse_qs(s)
            for name, values in qforms.items():
                oforms[name] = values[0]
        elif ctype.startswith("multipart/"):
            def on_field(field):
                oforms[field.field_name.decode()] = field.value.decode()
            def on_file(file):
                ofiles[file.field_name.decode()] = FileItem(file)
            multipart.parse_form(headers={"Content-Type": ctype},
                                 input_stream=sys.stdin.buffer,
                                 on_field=on_field, on_file=on_file)
    return oforms, ofiles

98%


¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge