Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Strim atau Muat Turun Fail dari URL Jauh di ASP.NET?

Bagaimana untuk Strim atau Muat Turun Fail dari URL Jauh di ASP.NET?

Linda Hamilton
Lepaskan: 2025-01-06 08:09:41
asal
770 orang telah melayarinya

How to Stream or Download Files from Remote URLs in ASP.NET?

Strim atau Muat Turun Fail daripada URL Jauh dalam ASP.NET

Isu:

Anda perlu menstrim atau memuat turun fail daripada URL jauh dan memaparkannya sebagai dialog simpan sebagai dalam penyemak imbas. Walau bagaimanapun, direktori fail adalah maya, menjadikannya tidak boleh diakses melalui kaedah tradisional seperti Server.MapPath.

Penyelesaian:

Gunakan HttpWebRequest untuk mendapatkan semula fail daripada URL dan strim ia kembali kepada pelanggan. Pendekatan ini membolehkan anda bekerja dengan fail yang boleh diakses hanya melalui URL.

Berikut ialah contoh kod:

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

    //This controls how many bytes to read at a time and send to the client
    int bytesToRead = 10000;

    // Buffer to read bytes in chunk size specified above
    byte[] buffer = new Byte[bytesToRead];

    // The number of bytes read
    try
    {
        //Create a WebRequest to get the file
        HttpWebRequest fileReq = (HttpWebRequest) HttpWebRequest.Create(url);

        //Create a response for this request
        HttpWebResponse fileResp = (HttpWebResponse) fileReq.GetResponse();

        if (fileReq.ContentLength > 0)
            fileResp.ContentLength = fileReq.ContentLength;

        //Get the Stream returned from the response
        stream = fileResp.GetResponseStream();

        // prepare the response to the client. resp is the client Response
        var resp = HttpContext.Current.Response;

        //Indicate the type of data being sent
        resp.ContentType = MediaTypeNames.Application.Octet;

        //Name the file 
        resp.AddHeader("Content-Disposition", "attachment; filename=\"\"" + fileName + "\"\"");
        resp.AddHeader("Content-Length", fileResp.ContentLength.ToString());

        int length;
        do
        {
            // Verify that the client is connected.
            if (resp.IsClientConnected)
            {
                // Read data into the buffer.
                length = stream.Read(buffer, 0, bytesToRead);

                // and write it out to the response's output stream
                resp.OutputStream.Write(buffer, 0, length);

                // Flush the data
                resp.Flush();

                //Clear the buffer
                buffer = new Byte[bytesToRead];
            }
            else
            {
                // cancel the download if client has disconnected
                length = -1;
            }
        } while (length > 0); //Repeat until no data is read
    }
    finally
    {
        if (stream != null)
        {
            //Close the input stream
            stream.Close();
        }
    }
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Strim atau Muat Turun Fail dari URL Jauh di 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