This commit is contained in:
flaskfarm
2022-10-06 14:40:55 +09:00
parent b4e737a6b2
commit 4b72b7dc65
18 changed files with 6668 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
try:
import aiohttp
from urllib.parse import quote
def content_disposition_header(disptype, quote_fields=True, **params):
if not disptype or not (aiohttp.helpers.TOKEN > set(disptype)):
raise ValueError('bad content disposition type {!r}'
''.format(disptype))
value = disptype
if params:
lparams = []
for key, val in params.items():
if not key or not (aiohttp.helpers.TOKEN > set(key)):
raise ValueError('bad content disposition parameter'
' {!r}={!r}'.format(key, val))
###### Do not encode filename
if key == 'filename':
qval = val
else:
qval = quote(val, '') if quote_fields else val
lparams.append((key, '"%s"' % qval))
sparams = '; '.join('='.join(pair) for pair in lparams)
value = '; '.join((value, sparams))
return value
# Override original version
aiohttp.payload.content_disposition_header = content_disposition_header
# In case aiohttp changes and this hack no longer works, I don't want it to
# bog down the entire library.
except (ImportError, AttributeError):
pass