Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Muat Turun Fail selepas Menyiarkan Data dengan FastAPI?

Bagaimana untuk Muat Turun Fail selepas Menyiarkan Data dengan FastAPI?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-01 10:04:30786semak imbas

How to Download a File after POSTing Data with FastAPI?

Bagaimana hendak Muat Turun Fail selepas MENYATAKAN data menggunakan FastAPI?

Apabila bekerja dengan FastAPI, memuat turun fail selepas menyiarkan data berkisar pada penggunaan Kelas FileResponse. Untuk mencapai matlamat ini:

  1. Tentukan titik tamat Borang-data: Gunakan kata kunci Borang untuk menentukan data borang yang dijangkakan dalam titik akhir anda. Pastikan parameter yang diperlukan ditetapkan seperti yang diperlukan dalam Borang(...).
  2. Proses dan jana respons: Selepas memproses data yang diterima dan menjana fail, gunakan FileResponse untuk mengembalikan fail kepada pengguna.
  3. Tetapkan pengepala Pelupusan Kandungan: Untuk memulakan muat turun, tetapkan pengepala Pelupusan Kandungan dalam FileResponse menggunakan parameter 'lampiran'.
  4. Kembalikan FileResponse: Hantar FileResponse kembali kepada klien, memastikan pengepala adalah betul untuk mencetuskan muat turun fail.

Berikut ialah contoh:

<code class="python">@app.post("/download")
async def download_file(request: Request):
    if request.method == "POST":
        form = await request.form()
        if form["message"] and form["language"]:
            # Process the data and generate the file here
            file_path = "path/to/file.mp3"
            headers = {"Content-Disposition": f"attachment; filename=downloaded_file.mp3"}
            return FileResponse(file_path, headers=headers, media_type="audio/mp3")</code>

Ingat, jika anda mahu titik akhir mengendalikan kedua-dua permintaan GET dan POST, gunakan sama ada @app.api_route() dengan kaedah=["GET", "POST"] atau tentukan titik akhir berasingan dengan @app.post() dan @app. get().

Selain itu, jika anda bercadang untuk memuat turun berbilang fail atau memerlukan lebih fleksibiliti, pertimbangkan untuk menggunakan konsep lain seperti:

  • StreamingResponse: Untuk memproses fail besar dalam ketulan, gunakan StreamingResponse dan bukannya FileResponse.
  • JavaScript dan Fetch API: Di bahagian hadapan, gunakan JavaScript dan Fetch API untuk memulakan proses muat turun fail.
  • Kedai Nilai Kunci/Pangkalan Data: Untuk mengendalikan berbilang pengguna dan fail serentak, pertimbangkan untuk menggunakan stor atau pangkalan data Nilai Kunci untuk memetakan laluan fail kepada pengecam unik.

Atas ialah kandungan terperinci Bagaimana untuk Muat Turun Fail selepas Menyiarkan Data dengan FastAPI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn