diff options
Diffstat (limited to 'qc_app/files.py')
-rw-r--r-- | qc_app/files.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/qc_app/files.py b/qc_app/files.py new file mode 100644 index 0000000..6485b27 --- /dev/null +++ b/qc_app/files.py @@ -0,0 +1,20 @@ +"""Utilities to deal with uploaded files.""" +from pathlib import Path +from typing import Union + +from werkzeug.utils import secure_filename +from flask import ( + request, + current_app as app) + +def save_file(key: str, upload_dir: Path) -> Union[Path, bool]: + """Save the uploaded file and return the path.""" + if not bool(request.files.get(key)): + return False + filename = Path(secure_filename(request.files[key].filename)) + if not upload_dir.exists(): + upload_dir.mkdir() + + filepath = Path(upload_dir, filename) + request.files["samples_file"].save(filepath) + return filepath |