Bagaimana cara memfilter unggahan file aplikasi Flask berdasarkan ukuran?

Nov 20, 2025Tinggalkan pesan

Dalam bidang pengembangan web, Flask telah muncul sebagai kerangka mikro yang populer untuk membangun aplikasi web karena kesederhanaan dan fleksibilitasnya. Salah satu persyaratan umum di banyak aplikasi Flask adalah menangani unggahan file. Namun, mengizinkan pengguna mengunggah file tanpa batasan yang tepat dapat menyebabkan berbagai masalah, seperti konsumsi penyimpanan server yang berlebihan dan potensi risiko keamanan. Di blog ini, sebagai pemasok Filtering Flask, saya akan memandu Anda melalui proses memfilter unggahan file aplikasi Flask berdasarkan ukurannya.

Memahami Dasar-dasar Upload File di Flask

Sebelum kita mempelajari pemfilteran ukuran, mari kita tinjau secara singkat cara kerja pengunggahan file di Flask. Flask menyediakan cara mudah untuk menangani unggahan file melaluipermintaan.filesobyek. Ketika pengguna mengirimkan formulir dengan kolom input file, file yang diunggah dapat diakses di aplikasi Flask.

Berikut contoh sederhana aplikasi Flask yang menerima upload file:

dari labu impor Labu, minta app = Flask(__name__) @app.route('/upload', metode=['POST']) def upload_file(): file = request.files['file'] if file: file.save('uploads/' + file.filename) return 'File berhasil diunggah' return 'Tidak ada file yang diunggah' if __name__ == '__main__': app.run(debug=True)

Dalam kode ini, kami mendefinisikan rute/mengunggahyang menerima permintaan POST. Saat file diunggah, file tersebut disimpan diunggahandirektori.

Clear glass Filtering FlaskLaboratory Clear Glass Filtering Flasks With Upper Tubulature

Mengapa Memfilter Unggahan File Berdasarkan Ukuran?

Ada beberapa alasan mengapa Anda mungkin ingin memfilter unggahan file berdasarkan ukuran. Pertama, penyimpanan server adalah sumber daya yang terbatas. Mengizinkan pengguna mengunggah file berukuran sangat besar dapat dengan cepat menghabiskan ruang yang tersedia di server Anda. Kedua, unggahan file berukuran besar dapat menyebabkan masalah kinerja, terutama jika server Anda memiliki bandwidth terbatas. Selain itu, pengguna jahat mungkin mencoba mengunggah file yang sangat besar sebagai bentuk serangan penolakan layanan.

Menerapkan Pemfilteran Ukuran di Flask

Untuk menerapkan pemfilteran ukuran pada aplikasi Flask, kita perlu memeriksa ukuran file yang diunggah sebelum menyimpannya. Flask tidak menyediakan cara langsung untuk mendapatkan ukuran file daripermintaan.filesobjek, tapi kita bisa menggunakanAndamodul dengan Python untuk mencapai ini.

Berikut adalah versi terbaru dari contoh sebelumnya dengan pemfilteran ukuran:

impor os dari labu impor Labu, minta aplikasi = Labu(__nama__) MAX_FILE_SIZE = 1024 * 1024 # 1MB @app.route('/upload', metode=['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: kembalikan 'Ukuran file melebihi batas' file.save('uploads/' + file.filename) kembalikan 'File berhasil diunggah' kembalikan 'Tidak ada file yang diunggah' jika __name__ == '__main__': app.run(debug=True)

Dalam kode ini, pertama-tama kita menentukan ukuran file maksimumMAX_FILE_SIZE(dalam hal ini, 1MB). Saat file diunggah, kami menggunakanmencariDanmemberi tahumetode untuk mendapatkan ukuran file. Jika ukuran file melebihi batas maksimum, kami mengembalikan pesan kesalahan. Jika tidak, kami menyimpan file seperti biasa.

Menggunakan Flask - WTF untuk Validasi Formulir

Flask - WTF adalah ekstensi untuk Flask yang menyederhanakan penanganan dan validasi formulir. Kita dapat menggunakannya untuk melakukan pemfilteran ukuran dengan cara yang lebih elegan.

Pertama, instal Flask - WTF:

pip instal labu - wtf

Berikut ini contoh penggunaan Flask - WTF untuk pemfilteran ukuran:

dari flask import Flask, render_template, permintaan dari flask_wtf import FlaskForm dari wtforms import FileField dari 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('Unggah File', validator=[Data yang Diperlukan()]) @app.route('/unggah', metode=['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: return 'Ukuran file melebihi batas' file.save('uploads/' + file.filename) return 'File berhasil diunggah' return render_template('upload.html', form=form) if __name__ == '__main__': app.run(debug=True)

Dalam contoh ini, kita membuat kelas formFormulir Unggahmenggunakan Labu - WTF. Bentuknya mempunyai aBidang Fileuntuk unggahan file. Saat formulir sudah diserahkan, kami melakukan pengecekan ukuran seperti sebelumnya.

Pertimbangan untuk Lingkungan yang Berbeda

Saat menerapkan pemfilteran ukuran, penting untuk mempertimbangkan lingkungan berbeda di mana aplikasi Flask Anda mungkin berjalan. Misalnya, dalam lingkungan pengembangan, Anda mungkin ingin menetapkan ukuran file maksimum yang relatif rendah untuk tujuan pengujian. Dalam lingkungan produksi, Anda mungkin perlu menyesuaikan batas berdasarkan sumber daya server dan sifat aplikasi Anda.

Produk Labu Penyaring Kami

Sebagai pemasok Labu Penyaring, kami menawarkan berbagai macam labu penyaring berkualitas tinggi untuk berbagai aplikasi laboratorium. KitaLabu Penyaringan Kaca Bening Laboratorium dengan Tubulatur Atasterbuat dari kaca bening sehingga memudahkan pengamatan proses penyaringan. Mereka dirancang dengan tubulatur atas untuk filtrasi yang efisien.

Produk populer lainnya adalah milik kamiLabu Penyaringan Erlenmeyer Bentuk Kerucut Kaca Laboratorium dengan Tubulasi Atas. Bentuk kerucut memberikan stabilitas yang lebih baik dan cocok untuk berbagai tugas filtrasi.

Hubungi Kami untuk Pengadaan

Jika Anda tertarik dengan labu pemfilteran kami atau memiliki pertanyaan tentang pemfilteran ukuran pada aplikasi Flask, kami mengundang Anda untuk menghubungi kami untuk diskusi pengadaan. Tim ahli kami siap membantu Anda dalam menemukan produk yang tepat untuk kebutuhan Anda.

Referensi

  • Dokumentasi Labu
  • ular pitonAndadokumentasi modul
  • Labu - dokumentasi WTF