Como filtrar os uploads de arquivos do aplicativo Flask com base no tamanho?

Nov 20, 2025Deixe um recado

No domínio do desenvolvimento web, o Flask emergiu como uma microestrutura popular para a construção de aplicações web devido à sua simplicidade e flexibilidade. Um requisito comum em muitos aplicativos Flask é lidar com uploads de arquivos. No entanto, permitir que os usuários carreguem arquivos sem as devidas restrições pode levar a vários problemas, como consumo excessivo de armazenamento do servidor e possíveis riscos de segurança. Neste blog, como fornecedor do Filtering Flask, orientarei você no processo de filtragem de uploads de arquivos do aplicativo Flask com base no tamanho.

Compreendendo os fundamentos do upload de arquivos no Flask

Antes de nos aprofundarmos na filtragem de tamanho, vamos revisar brevemente como funcionam os uploads de arquivos no Flask. Flask fornece uma maneira direta de lidar com uploads de arquivos por meio de seusolicitação.arquivosobjeto. Quando um usuário envia um formulário com um campo de entrada de arquivo, o arquivo carregado pode ser acessado no aplicativo Flask.

Aqui está um exemplo simples de um aplicativo Flask que aceita uploads de arquivos:

from flask import Flask, request app = Flask(__name__) @app.route('/upload', methods=['POST']) def upload_file(): file = request.files['file'] if file: file.save('uploads/' + file.filename) return 'Arquivo carregado com sucesso' return 'Nenhum arquivo carregado' se __name__ == '__main__': app.run(debug=True)

Neste código, definimos uma rota/carregarque aceita solicitações POST. Quando um arquivo é carregado, ele é salvo noenviosdiretório.

Clear glass Filtering FlaskLaboratory Clear Glass Filtering Flasks With Upper Tubulature

Por que filtrar uploads de arquivos com base no tamanho?

Existem vários motivos pelos quais você pode querer filtrar uploads de arquivos com base no tamanho. Em primeiro lugar, o armazenamento do servidor é um recurso finito. Permitir que os usuários carreguem arquivos extremamente grandes pode esgotar rapidamente o espaço disponível no servidor. Em segundo lugar, uploads de arquivos grandes podem causar problemas de desempenho, especialmente se o seu servidor tiver largura de banda limitada. Além disso, usuários mal-intencionados podem tentar fazer upload de arquivos muito grandes como uma forma de ataque de negação de serviço.

Implementando filtragem de tamanho no Flask

Para implementar a filtragem de tamanho em um aplicativo Flask, precisamos verificar o tamanho do arquivo enviado antes de salvá-lo. O Flask não fornece uma maneira direta de obter o tamanho do arquivo dosolicitação.arquivosobjeto, mas podemos usar oosmódulo em Python para conseguir isso.

Aqui está uma versão atualizada do exemplo anterior com filtragem de tamanho:

import os from flask import Flask, request app = Flask(__name__) MAX_FILE_SIZE = 1024 * 1024 # 1MB @app.route('/upload', methods=['POST']) def upload_file(): file = request.files['file'] if file: file.seek(0, os.SEEK_END) file_size = file.tell() file.seek(0) if file_size > MAX_FILE_SIZE: return 'Tamanho do arquivo excede o limite' file.save('uploads/' + file.filename) return 'Arquivo enviado com sucesso' return 'Nenhum arquivo enviado' if __name__ == '__main__': app.run(debug=True)

Neste código, primeiro definimos um tamanho máximo de arquivoMAX_FILE_SIZE(neste caso, 1 MB). Quando um arquivo é carregado, usamos oprocuraredizermétodos para obter o tamanho do arquivo. Se o tamanho do arquivo exceder o limite máximo, retornaremos uma mensagem de erro. Caso contrário, salvamos o arquivo normalmente.

Usando Flask - WTF para validação de formulário

Flask - WTF é uma extensão do Flask que simplifica o manuseio e validação de formulários. Podemos usá-lo para realizar a filtragem de tamanho de uma forma mais elegante.

Primeiro, instale o Flask - WTF:

frasco de instalação pip - wtf

Aqui está um exemplo de uso do Flask - WTF para filtragem de tamanho:

from flask import Flask, render_template, request from flask_wtf import FlaskForm from wtforms import FileField from wtforms.validators import DataRequired import os app = Flask(__name__) app.config['SECRET_KEY'] = 'your_secret_key' MAX_FILE_SIZE = 1024 * 1024 # 1MB class UploadForm(FlaskForm): file = FileField('Upload File', validators=[DataRequired()]) @app.route('/upload', methods=['GET', 'POST']) def upload_file(): form = UploadForm() if form.validate_on_submit(): file = form.file.data file.seek(0, os.SEEK_END) file_size = file.tell() file.seek(0) if file_size > MAX_FILE_SIZE: retorna 'Tamanho do arquivo excede o limite' file.save('uploads/' + file.filename) retorna 'Arquivo enviado com sucesso' return render_template('upload.html', form=form) if __name__ == '__main__': app.run(debug=True)

Neste exemplo, criamos uma classe de formulárioCarregarFormuláriousando Flask - WTF. O formulário tem umCampo de arquivopara uploads de arquivos. Quando o formulário é enviado, realizamos a verificação de tamanho como antes.

Considerações para diferentes ambientes

Ao implementar a filtragem de tamanho, é importante considerar os diferentes ambientes nos quais seu aplicativo Flask pode ser executado. Por exemplo, em um ambiente de desenvolvimento, talvez você queira definir um tamanho máximo de arquivo relativamente baixo para fins de teste. Num ambiente de produção, poderá ser necessário ajustar o limite com base nos recursos do seu servidor e na natureza da sua aplicação.

Nossos produtos de frasco filtrante

Como fornecedor de frascos filtrantes, oferecemos uma ampla variedade de frascos filtrantes de alta qualidade para diversas aplicações laboratoriais. NossoFrascos de filtragem de vidro transparente de laboratório com tubulatura superiorsão feitos de vidro transparente, o que permite fácil observação do processo de filtragem. Eles são projetados com uma tubulação superior para uma filtragem eficiente.

Outro produto popular é o nossoFrascos de filtragem Erlenmeyer de formato cônico de vidro de laboratório com tubulação superior. O formato cônico proporciona melhor estabilidade e é adequado para uma variedade de tarefas de filtração.

Contate-nos para compras

Se você estiver interessado em nossos frascos filtrantes ou tiver alguma dúvida sobre a filtragem por tamanho em aplicações de frascos, convidamos você a entrar em contato conosco para discussões sobre compras. Nossa equipe de especialistas está pronta para ajudá-lo a encontrar os produtos certos para suas necessidades.

Referências

  • Documentação do frasco
  • Pitãoosdocumentação do módulo
  • Frasco - documentação WTF