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 import APIRouter, Depends, HTTPException, Request
from fastapi.responses import HTMLResponse from fastapi.responses import HTMLResponse
from starlette import status from starlette import status
from src.depends.services import get_service from src.depends.services import get_service
from src.logging.get_logger import get_logger from src.logging.get_logger import get_logger
from src.model.internal.session import UserSession 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 \ from src.model.view.inst_emp_csv_download_view_model import \
InstEmpCsvDownloadViewModel InstEmpCsvDownloadViewModel
from src.model.view.inst_emp_csv_upload_view_model import \ 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.services.session_service import set_session
from src.system_var import constants from src.system_var import constants
from src.templates import templates 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('マスターメンテ') logger = get_logger('マスターメンテ')
@ -117,7 +117,7 @@ def inst_emp_csv_upload_view(
@router.post('/instEmpCsvUL', response_class=HTMLResponse) @router.post('/instEmpCsvUL', response_class=HTMLResponse)
async def inst_emp_csv_upload( async def inst_emp_csv_upload(
request: Request, 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)), master_mainte_service: MasterMainteService = Depends(get_service(MasterMainteService)),
batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService)) batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService))
): ):
@ -137,12 +137,12 @@ async def inst_emp_csv_upload(
# 画面表示用のモデル # 画面表示用のモデル
error_message_list = [] 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: if csv_upload_form.csv_file.size == 0:
error_message_list.append('選択されたファイルが見つかりませんでした。') 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"ではありません。') 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未満にしてください。') error_message_list.append('選択されたCSVファイルサイズが大きいです。100MB未満にしてください。')
else: else:
mainte_csv_up = master_mainte_service.prepare_mainte_csv_up_view( 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' MENTE_CSV_DOWNLOAD_FILE_NAME = 'instEmpData.csv'
# CSVアップロードの制限サイズ100MB # CSVアップロードの制限サイズ20MB
MENTE_CSV_UPLOAD_MAX_FILE_SIZE_BYTE = 104857600 MAINTE_CSV_UPLOAD_MAX_FILE_SIZE_BYTE = 20971520