[python] Flask-WTF에서 파일 업로드 시 허용되는 파일 타입을 제한하는 방법은 어떻게 되나요?
아래는 예시 코드입니다.
from flask_wtf import FlaskForm
from flask_wtf.file import FileField, FileAllowed
from wtforms import SubmitField
class UploadForm(FlaskForm):
photo = FileField('Select a photo', validators=[FileAllowed(['jpg', 'png', 'jpeg'])])
submit = SubmitField('Upload')
위의 예시에서 FileAllowed
검증자를 사용하여, jpg
, png
, jpeg
파일 타입만 허용하도록 설정했습니다.
또한, 해당하는 파일 타입만을 업로드하도록 클라이언트 사이드에서 검증하는 것이 중요합니다. 이를 위해 HTML의 accept
속성을 사용하여 파일 선택 창에서 허용되는 파일 타입을 표시할 수 있습니다. 예를 들면 아래와 같이 사용할 수 있습니다.
<form method="POST" enctype="multipart/form-data">
<input type="file" name="photo" accept=".jpg, .png, .jpeg">
<input type="submit" value="Upload">
</form>
이렇게 함으로써 서버 측에서와 클라이언트 측에서 모두 파일 타입을 제한할 수 있습니다.
더 자세한 내용은 Flask-WTF 공식 문서를 참고하시기 바랍니다.
- Flask-WTF: https://flask-wtf.readthedocs.io/
- WTForms: https://wtforms.readthedocs.io/