Come implementare l'upload di file multipli con Python

Il caricamento di file multipli è una funzionalità comune in molte applicazioni web. In Python, puoi implementarlo facilmente utilizzando il framework Flask e altre librerie per gestire le richieste e salvare i file. In questo articolo, vedremo un esempio pratico di come farlo.

Prerequisiti

Prima di iniziare, assicurati di avere installati i seguenti strumenti:

  • Python 3.x
  • Flask (installabile con pip install flask)

Codice di Esempio

Di seguito trovi un esempio di codice per implementare l'upload di file multipli:


from flask import Flask, request, render_template_string

app = Flask(__name__)

# Configurazione della directory di upload
app.config['UPLOAD_FOLDER'] = 'uploads/'

@app.route('/')
def upload_form():
    return render_template_string('''
    <!doctype html>
    <title>Caricamento File Multipli</title>
    <h1>Carica i tuoi file</h1>
    <form method="post" action="/upload" enctype="multipart/form-data">
        <input type="file" name="files" multiple>
        <input type="submit" value="Carica">
    </form>
    ''')

@app.route('/upload', methods=['POST'])
def upload_files():
    if 'files' not in request.files:
        return "Nessun file selezionato."
    
    files = request.files.getlist('files')
    saved_files = []
    
    for file in files:
        if file.filename != '':
            file.save(f"{app.config['UPLOAD_FOLDER']}{file.filename}")
            saved_files.append(file.filename)
    
    return f"File salvati: {', '.join(saved_files)}"

if __name__ == "__main__":
    app.run(debug=True)
        

Spiegazione del Codice

Il codice si divide in tre parti principali:

  1. Configurazione: La directory UPLOAD_FOLDER viene configurata per salvare i file.
  2. Interfaccia Utente: La route / serve una semplice interfaccia HTML per caricare i file.
  3. Gestione dell'Upload: La route /upload gestisce i file inviati e li salva nella directory configurata.

Conclusione

Implementare il caricamento di file multipli con Python è semplice e richiede poche righe di codice. Questo esempio è un punto di partenza, e puoi personalizzarlo per soddisfare le tue esigenze specifiche, come la validazione dei file o l'organizzazione in sottodirectory.

Torna su