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
Patricia Arquetteasal
2025-01-24 01:12:09800semak imbas

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>

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!

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