Muat turun atau Strim Fail daripada URL dalam ASP.NET
Anda mungkin menghadapi senario di mana anda perlu memuat turun atau menstrim fail daripada URL dalam anda aplikasi ASP.NET. Walau bagaimanapun, cabaran timbul apabila fail ini berada dalam direktori yang dipetakan secara maya, menjadikannya mustahil untuk menentukan lokasi sebenar mereka menggunakan Server.MapPath.
Satu penyelesaian untuk ini ialah menggunakan kelas HttpWebRequest untuk mendapatkan semula fail dan menstrimnya kembali kepada klien. Ini membolehkan anda mengakses fail melalui URL dan bukannya laluan fail.
Pertimbangkan coretan kod berikut:
try { // Create a WebRequest to retrieve the file HttpWebRequest fileReq = (HttpWebRequest)HttpWebRequest.Create(url); // Get a response for the request HttpWebResponse fileResp = (HttpWebResponse)fileReq.GetResponse(); if (fileReq.ContentLength > 0) fileResp.ContentLength = fileReq.ContentLength; // Get the response stream Stream stream = fileResp.GetResponseStream(); // Prepare the response to the client HttpContext.Current.Response.ContentType = MediaTypeNames.Application.Octet; HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); HttpContext.Current.Response.AddHeader("Content-Length", fileResp.ContentLength.ToString()); int length; byte[] buffer = new byte[10000]; // Chunk size for reading the file do { // Check if the client is connected if (HttpContext.Current.Response.IsClientConnected) { // Read data into the buffer length = stream.Read(buffer, 0, buffer.Length); // Write it out to the response's output stream HttpContext.Current.Response.OutputStream.Write(buffer, 0, length); // Flush the data HttpContext.Current.Response.Flush(); // Clear the buffer buffer = new byte[buffer.Length]; } else { // Cancel the download if the client has disconnected length = -1; } } while (length > 0); } catch { // Handle any errors that may occur } finally { if (stream != null) { // Close the input stream stream.Close(); } }
Dengan melaksanakan pendekatan ini, anda boleh menstrim fail daripada URL dan memaparkannya terus dalam penyemak imbas atau membenarkan pengguna menyimpannya ke sistem setempat mereka.
Atas ialah kandungan terperinci Bagaimana untuk Muat Turun atau Strim Fail dari URL dalam ASP.NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!