kopia lustrzana https://github.com/cirospaciari/socketify.py
48 wiersze
1.1 KiB
Python
48 wiersze
1.1 KiB
Python
![]() |
from socketify import App
|
||
|
from streaming_form_data import StreamingFormDataParser
|
||
|
from streaming_form_data.targets import ValueTarget, FileTarget
|
||
|
app = App()
|
||
|
router = app.router()
|
||
|
|
||
|
@router.post("/")
|
||
|
async def upload(res, req):
|
||
|
print(f"Posted to {req.get_url()}")
|
||
|
parser = StreamingFormDataParser(headers=req.get_headers())
|
||
|
name = ValueTarget()
|
||
|
parser.register('name', name)
|
||
|
file = FileTarget('/tmp/file')
|
||
|
file2 = FileTarget('/tmp/file2')
|
||
|
parser.register('file', file)
|
||
|
parser.register('file2', file2)
|
||
|
|
||
|
|
||
|
def on_data(res, chunk, is_end):
|
||
|
parser.data_received(chunk)
|
||
|
if is_end:
|
||
|
res.cork(on_finish)
|
||
|
|
||
|
|
||
|
def on_finish(res):
|
||
|
print(name.value)
|
||
|
|
||
|
print(file.multipart_filename)
|
||
|
print(file.multipart_content_type)
|
||
|
|
||
|
print(file2.multipart_filename)
|
||
|
print(file2.multipart_content_type)
|
||
|
|
||
|
res.end("Thanks for the data!")
|
||
|
|
||
|
res.on_data(on_data)
|
||
|
|
||
|
|
||
|
@router.any("*")
|
||
|
def not_found(res, _):
|
||
|
res.write_status(404).end("Not Found")
|
||
|
|
||
|
app.listen(
|
||
|
3000,
|
||
|
lambda config: print("Listening on port http://localhost:%d now\n" % config.port),
|
||
|
)
|
||
|
app.run()
|