English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Upload de Arquivos do Flask

Tratar o upload de arquivo no Flask é muito simples. Ele precisa de um atributo enctype configurado para 'multipart/form-do formulário HTML, submetendo-o para a URL especificada. O manipulador de URL extrai o arquivo do objeto request.files[] e o salva na posição necessária.

Cada arquivo carregado é salvo temporariamente no servidor antes de ser salvo na posição final. O nome do arquivo alvo pode ser codificado em tempo real ou obtido a partir do atributo filename do objeto request.files [file]. No entanto, é recomendável usar a função secure_filename() para obter sua versão segura.

Você pode definir o caminho padrão da pasta de upload e o tamanho máximo do arquivo a ser carregado nas configurações de configuração do objeto Flask.

VariávelDescrição
app.config[‘UPLOAD_FOLDER’]definir o caminho da pasta de upload
app.config[‘MAX_CONTENT_PATH’]especificar o tamanho máximo do arquivo a ser carregado - em bytes

O seguinte código possui URL: /regras do upload, que exibe o arquivo upload.html na pasta templates e a URL de chamada da função uploader() para o processo de upload => /upload-regras do arquivo.

upload.html possui um botão de seleção de arquivo e um botão de submissão.

# Nome do Arquivo: example.py
# Copyright : 2020 By w3codebox
# Autor por: pt.oldtoolbag.com
# Data : 2020-08-08
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>Exemplo Flask</title>
 </head>
    <body>
      <form action="http://localhost:5000/upload" method="POST" 
          enctype="multipart/form-data">
          <input type="file" name="file" />
          <input type="submit" value="Submeter">/>
       </form>
    </body>
 </html>

Você verá a captura de tela a seguir -

Após selecionar o arquivo, clique SubmeterMétodo POST da formulário chama URL=> /upload_file. A função inferior uploader() executa a operação de salvar o arquivo.

A seguir está o código Python da aplicação Flask.

# Nome do Arquivo: example.py
# Copyright : 2020 By w3codebox
# Autor por: pt.oldtoolbag.com
# Data : 2020-08-08
from flask import Flask, render_template, request
 from werkzeug import secure_filename
 app = Flask(__name__)
 @app.route('/upload', methods=['GET', 'POST'])
 def upload_file():
     if request.method == 'POST':
         f = request.files['file']
         print(request.files)
         f.save(secure_filename(f.filename))
         return 'arquivo uploaded com sucesso'
     else:
         return render_template('upload.html')
 if __name__ == '__main__':
     app.run(debug=True)

Após executar o programa, execute o código acima, selecione um arquivo de imagem e, em seguida, clique em Upload para obter o seguinte resultado -