[python] 파일 업로드 및 다운로드 처리하기
이번 포스트에서는 Python을 사용하여 파일 업로드 및 다운로드를 처리하는 방법에 대해 알아보겠습니다.
파일 업로드하기
파일을 업로드하기 위해서는 Flask
와 Flask-Uploads
모듈이 필요합니다. 먼저 이를 설치합니다.
pip install flask flask-uploads
다음은 파일 업로드를 처리하는 간단한 예제 코드입니다.
from flask import Flask, request
from flask_uploads import UploadSet, configure_uploads, IMAGES
app = Flask(__name__)
app.config['UPLOADED_PHOTOS_DEST'] = 'uploads'
photos = UploadSet('photos', IMAGES)
configure_uploads(app, photos)
@app.route('/upload', methods=['POST'])
def upload():
if 'photo' in request.files:
filename = photos.save(request.files['photo'])
return f'File {filename} uploaded successfully'
else:
return 'No file selected'
if __name__ == '__main__':
app.run()
위 코드에서는 uploads
폴더에 업로드된 파일을 저장하도록 설정하고, upload
엔드포인트에서 파일을 업로드합니다. 업로드된 파일은 photos.save()
메서드를 통해 저장되며, 업로드된 파일의 이름을 반환합니다.
파일 다운로드하기
파일을 다운로드하기 위해서는 Flask
모듈만으로도 가능합니다. 다음은 파일 다운로드를 처리하는 간단한 예제 코드입니다.
from flask import Flask, send_file
app = Flask(__name__)
@app.route('/download')
def download():
filename = 'example.png'
return send_file(filename, as_attachment=True)
if __name__ == '__main__':
app.run()
위 코드에서는 download
엔드포인트에서 send_file()
함수를 사용하여 파일 다운로드를 처리합니다. 다운로드할 파일의 경로를 send_file()
함수의 첫 번째 인자로 전달하고, as_attachment=True
를 설정하여 파일을 첨부 파일로 다운로드할 수 있도록 설정합니다.
이제 파일 업로드 및 다운로드를 처리하는 간단한 예제 코드를 살펴보았습니다. 실제로는 파일 업로드 시 보안 검사 및 업로드 제한, 파일 다운로드 시 권한 검사 등 추가 작업이 필요할 수 있습니다. 자세한 내용은 각 모듈의 문서를 참고하시기 바랍니다.
참고 문서: