Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menerima Permintaan POST Fail dengan Benar dalam API Web ASP.NET?

Bagaimana untuk Menerima Permintaan POST Fail dengan Benar dalam API Web ASP.NET?

Patricia Arquette
Lepaskan: 2025-01-24 01:12:09
asal
753 orang telah melayarinya

How to Properly Accept File POST Requests in ASP.NET Web API?

Mengendalikan Muat Naik Fail dalam API Web ASP.NET

Panduan ini menunjukkan cara menerima fail POST dengan betul, seperti imej, dalam API Web ASP.NET. Contoh di bawah mengelak daripada menyimpan fail terus ke sistem fail pelayan, sebaliknya menyimpan data fail dalam ingatan.

Kaedah Muat Naik Fail yang Diperbaiki:

Coretan kod berikut menggunakan MultipartMemoryStreamProvider untuk mengendalikan muat naik fail dengan cekap dalam API Web.

<code class="language-csharp">[HttpPost("api/upload")]
public async Task<IHttpActionResult> Upload()
{
    // Check if the request content is multipart
    if (!Request.Content.IsMimeMultipartContent())
    {
        return BadRequest("Unsupported media type.  Please use multipart/form-data.");
    }

    var provider = new MultipartMemoryStreamProvider();
    await Request.Content.ReadAsMultipartAsync(provider);

    foreach (var fileContent in provider.Contents)
    {
        // Extract filename, removing surrounding quotes
        var filename = fileContent.Headers.ContentDisposition.FileName.Trim('"');

        // Validate file type (example: only allow images)
        string[] allowedExtensions = { ".jpg", ".jpeg", ".gif", ".bmp", ".png" };
        if (!allowedExtensions.Any(ext => filename.EndsWith(ext, StringComparison.OrdinalIgnoreCase)))
        {
            return BadRequest("Invalid file type.");
        }

        // Read file data into a byte array
        var buffer = await fileContent.ReadAsByteArrayAsync();

        // Process the file data (e.g., save to database, image manipulation)
        // ... your file processing logic here ...
    }

    return Ok();
}</code>
Salin selepas log masuk

Kaedah ini menyemak kandungan berbilang bahagian, mengekstrak nama fail, mengesahkan jenis fail, membaca data fail ke dalam tatasusunan bait, dan kemudian membenarkan pemprosesan tersuai buffer (data binari fail). Pengendalian ralat dipertingkatkan dengan mengembalikan kod status HTTP yang sesuai. Ingat untuk menambah pengendalian ralat dan langkah keselamatan yang diperlukan untuk persekitaran pengeluaran.

Atas ialah kandungan terperinci Bagaimana untuk Menerima Permintaan POST Fail dengan Benar dalam API Web ASP.NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan