Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengekstrak Bait Fail dengan Cekap daripada Strim Permintaan POST Berbilang Bahagian/Data?

Bagaimana untuk Mengekstrak Bait Fail dengan Cekap daripada Strim Permintaan POST Berbilang Bahagian/Data?

Mary-Kate Olsen
Lepaskan: 2025-01-01 01:23:08
asal
171 orang telah melayarinya

How to Efficiently Extract File Bytes from a Multipart/Form-Data POST Request Stream?

POST Berbilang/Borang-Data dan Penstriman Input Fail

Soalan:

Apabila menghantar fail ke perkhidmatan REST menggunakan multipart/form-data, bagaimana bait fail boleh diekstrak dengan cekap daripada aliran permintaan untuk diproses?

Jawapan:

Untuk mengekstrak bait fail daripada strim permintaan POST berbilang bahagian/data borang, pendekatan komprehensif menggunakan API awam Microsoft ialah tersedia.

Prasyarat:

  • System.Net.Http.dll (disertakan dalam .NET 4.5 atau melalui NuGet untuk .NET 4)
  • System.Net.Http.Formatting.dll (melalui NuGet untuk .NET 4.5 atau .NET 4)

Pelaksanaan Kod:

public static async Task ParseFiles(
    Stream data, string contentType, Action<string, Stream> fileProcessor)
{
    // Parse multipart request content
    var streamContent = new StreamContent(data);
    streamContent.Headers.ContentType = MediaTypeHeaderValue.Parse(contentType);
    var provider = await streamContent.ReadAsMultipartAsync();

    // Iterate through file parts
    foreach (var httpContent in provider.Contents)
    {
        var fileName = httpContent.Headers.ContentDisposition.FileName;
        if (string.IsNullOrWhiteSpace(fileName)) continue;

        using (Stream fileContents = await httpContent.ReadAsStreamAsync())
        {
            // Process file bytes
            fileProcessor(fileName, fileContents);
        }
    }
}
Salin selepas log masuk

Penggunaan Contoh:

Untuk kaedah WCF REST "OperationContract", anda boleh melaksanakan fail tersebut pemprosesan:

public void Upload(Stream data)
{
    MultipartParser.ParseFiles(
           data, 
           WebOperationContext.Current.IncomingRequest.ContentType, 
           MyProcessMethod);
}
Salin selepas log masuk

Dengan menggunakan pendekatan ini, pembangun boleh dengan mudah mendapatkan bait fail daripada permintaan POST berbilang/borang-data untuk pemprosesan dan penyimpanan seterusnya.

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Bait Fail dengan Cekap daripada Strim Permintaan POST Berbilang Bahagian/Data?. 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