app: content disposition fix for file names containing commas
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This commit is contained in:
parent
7fcd84bbe4
commit
04477705b0
|
@ -654,7 +654,8 @@ class FileRequestHandler(AuthorizedFileHandler):
|
|||
ascii_basename = self._escape_filename_to_ascii(basename)
|
||||
utf8_basename = self._escape_filename_to_utf8(basename)
|
||||
self.set_header(
|
||||
"Content-Disposition", f"attachment; filename={ascii_basename}; "
|
||||
"Content-Disposition",
|
||||
f"attachment; filename=\"{ascii_basename}\"; "
|
||||
f"filename*=UTF-8\'\'{utf8_basename}")
|
||||
|
||||
async def delete(self, path: str) -> None:
|
||||
|
@ -760,7 +761,8 @@ class FileRequestHandler(AuthorizedFileHandler):
|
|||
assert self.request.method == "HEAD"
|
||||
|
||||
def _escape_filename_to_ascii(self, basename: str) -> str:
|
||||
return basename.encode("ascii", "replace").decode()
|
||||
ret = basename.encode("ascii", "replace").decode()
|
||||
return ret.replace('"', '\\"')
|
||||
|
||||
def _escape_filename_to_utf8(self, basename: str) -> str:
|
||||
return urllib.parse.quote(basename, encoding="utf-8")
|
||||
|
|
Loading…
Reference in New Issue