Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menstrim dan Muat Turun Segera Fail dari URL dalam ASP.NET?

Bagaimana untuk Menstrim dan Muat Turun Segera Fail dari URL dalam ASP.NET?

Patricia Arquette
Lepaskan: 2025-01-06 08:06:41
asal
220 orang telah melayarinya

How to Stream and Prompt Download of a File from a URL in ASP.NET?

Memuat turun dan Menstrim Fail daripada URL dalam ASP.NET

Soalan:

Bagaimanakah fail boleh distrim daripada URL dan digesa untuk menyimpan dalam pelayar?

Latar Belakang:

Dalam senario ini, fail disimpan dalam direktori yang hampir dipetakan, menjadikannya tidak boleh diakses melalui Server.MapPath. Matlamatnya adalah untuk menstrim fail sambil menghantar URL web dan bukannya laluan fail pelayan.

Penyelesaian:

Untuk mengatasi isu ini, HttpWebRequest boleh digunakan untuk mendapatkan semula fail daripada URL dan strimkannya kembali kepada klien.

// Create stream for the file
Stream stream = null;

// Chunk size for reading bytes
int bytesToRead = 10000;

// Buffer for reading bytes
byte[] buffer = new Byte[bytesToRead];

try
{
    // HTTP request to get the file
    HttpWebRequest fileReq = (HttpWebRequest)HttpWebRequest.Create(url);

    // HTTP response for the request
    HttpWebResponse fileResp = (HttpWebResponse)fileReq.GetResponse();

    // Get response stream
    stream = fileResp.GetResponseStream();

    // Client response object
    var resp = HttpContext.Current.Response;

    // Indicate data type
    resp.ContentType = "application/octet-stream";

    // File name
    resp.AddHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");

    // File size
    resp.AddHeader("Content-Length", fileResp.ContentLength.ToString());

    int length;
    do
    {
        // Client connected?
        if (resp.IsClientConnected)
        {
            // Read data into buffer
            length = stream.Read(buffer, 0, bytesToRead);

            // Write data to output stream
            resp.OutputStream.Write(buffer, 0, length);

            // Flush data
            resp.Flush();

            // Clear buffer
            buffer = new Byte[bytesToRead];
        }
        else
        {
            // Cancel if client disconnected
            length = -1;
        }
    } while (length > 0);
}
finally
{
    // Close input stream
    if (stream != null)
        stream.Close();
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menstrim dan Muat Turun Segera Fail dari URL dalam 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