fix: アップロード時の不備修正。ファイルサイズ制限100MB→20MB, 拡張子CSVのみの楽観検査に変更(NEWDWH2021-1160)

This commit is contained in:
shimoda.m@nds-tyo.co.jp 2023-08-01 09:53:06 +09:00
parent e725a023f1
commit 441805ad0f
2 changed files with 9 additions and 9 deletions

View File

@ -4,9 +4,12 @@ from typing import Optional
from fastapi import APIRouter, Depends, HTTPException, Request
from fastapi.responses import HTMLResponse
from starlette import status
from src.depends.services import get_service
from src.logging.get_logger import get_logger
from src.model.internal.session import UserSession
from src.model.request.master_mainte_csvdl import MasterMainteCsvDlModel
from src.model.request.master_mainte_csvup import MasterMainteCsvUpModel
from src.model.view.inst_emp_csv_download_view_model import \
InstEmpCsvDownloadViewModel
from src.model.view.inst_emp_csv_upload_view_model import \
@ -20,9 +23,6 @@ from src.services.master_mainte_service import MasterMainteService
from src.services.session_service import set_session
from src.system_var import constants
from src.templates import templates
from src.model.request.master_mainte_csvup import MasterMainteCsvUpModel
from src.model.request.master_mainte_csvdl import MasterMainteCsvDlModel
logger = get_logger('マスターメンテ')
@ -117,7 +117,7 @@ def inst_emp_csv_upload_view(
@router.post('/instEmpCsvUL', response_class=HTMLResponse)
async def inst_emp_csv_upload(
request: Request,
csv_upload_form: Optional[MasterMainteCsvUpModel] = Depends(MasterMainteCsvUpModel.as_form),
csv_upload_form: MasterMainteCsvUpModel = Depends(MasterMainteCsvUpModel.as_form),
master_mainte_service: MasterMainteService = Depends(get_service(MasterMainteService)),
batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService))
):
@ -137,12 +137,12 @@ async def inst_emp_csv_upload(
# 画面表示用のモデル
error_message_list = []
content_type: str = csv_upload_form.csv_file.content_type.strip()
csv_filename: str = csv_upload_form.csv_file.filename
if csv_upload_form.csv_file.size == 0:
error_message_list.append('選択されたファイルが見つかりませんでした。')
elif content_type != 'text/csv' and content_type != 'application/vnd.ms-excel' and content_type != 'application/octet-stream':
elif not csv_filename.endswith('.csv'):
error_message_list.append('選択されたファイル形式が"csv"ではありません。')
elif csv_upload_form.csv_file.size >= constants.MENTE_CSV_UPLOAD_MAX_FILE_SIZE_BYTE:
elif csv_upload_form.csv_file.size >= constants.MAINTE_CSV_UPLOAD_MAX_FILE_SIZE_BYTE:
error_message_list.append('選択されたCSVファイルサイズが大きいです。100MB未満にしてください。')
else:
mainte_csv_up = master_mainte_service.prepare_mainte_csv_up_view(

View File

@ -212,5 +212,5 @@ MENTE_CSV_DOWNLOAD_HEADER = [
MENTE_CSV_DOWNLOAD_FILE_NAME = 'instEmpData.csv'
# CSVアップロードの制限サイズ100MB
MENTE_CSV_UPLOAD_MAX_FILE_SIZE_BYTE = 104857600
# CSVアップロードの制限サイズ20MB
MAINTE_CSV_UPLOAD_MAX_FILE_SIZE_BYTE = 20971520