English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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ável | Descriçã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 -