0
0
Flaskframework~5 mins

File upload processing in Flask

Choose your learning style9 modes available
Introduction

File upload processing lets your web app receive files from users. This helps users share images, documents, or other files easily.

When users need to upload profile pictures.
When users submit documents like resumes or reports.
When users share images or videos in a chat app.
When collecting files for online forms or applications.
Syntax
Flask
from flask import Flask, request

app = Flask(__name__)

@app.route('/upload', methods=['POST'])
def upload_file():
    if 'file' not in request.files:
        return 'No file part'
    file = request.files['file']
    if file.filename == '':
        return 'No selected file'
    if file:
        file.save('/path/to/save/' + file.filename)
        return 'File uploaded successfully'

Use request.files to access uploaded files.

Always check if the file exists and has a filename before saving.

Examples
Saves the uploaded file to the '/uploads/' folder with its original name.
Flask
file = request.files['file']
file.save('/uploads/' + file.filename)
Checks if the file was sent in the request.
Flask
if 'file' not in request.files:
    return 'No file part'
Ensures the user selected a file before saving.
Flask
if file.filename == '':
    return 'No selected file'
Sample Program

This Flask app shows a simple file upload form. When a user picks a file and submits, the file is saved in the 'uploads' folder. The app confirms the upload with a message.

The form uses enctype="multipart/form-data" which is required for file uploads. The input has an ARIA label for accessibility.

Flask
from flask import Flask, request, render_template_string
import os

app = Flask(__name__)

UPLOAD_FOLDER = 'uploads'
os.makedirs(UPLOAD_FOLDER, exist_ok=True)

@app.route('/')
def index():
    return render_template_string('''
    <h1>Upload a File</h1>
    <form method="POST" action="/upload" enctype="multipart/form-data">
      <input type="file" name="file" aria-label="Choose file to upload">
      <button type="submit">Upload</button>
    </form>
    ''')

@app.route('/upload', methods=['POST'])
def upload_file():
    if 'file' not in request.files:
        return 'No file part'
    file = request.files['file']
    if file.filename == '':
        return 'No selected file'
    filepath = os.path.join(UPLOAD_FOLDER, file.filename)
    file.save(filepath)
    return f'File "{file.filename}" uploaded successfully!'

if __name__ == '__main__':
    app.run(debug=True)
OutputSuccess
Important Notes

Always set enctype="multipart/form-data" in your HTML form to enable file uploads.

Use secure file names or sanitize them to avoid security risks.

Make sure the upload folder exists and your app has permission to write there.

Summary

File upload processing lets users send files to your Flask app.

Use request.files to get the uploaded file and save it safely.

Always check for file presence and valid filename before saving.