Heim > Backend-Entwicklung > C++ > Wie lade ich Dateien von URLs in ASP.NET herunter oder streame sie?

Wie lade ich Dateien von URLs in ASP.NET herunter oder streame sie?

Barbara Streisand
Freigeben: 2025-01-06 08:17:41
Original
532 Leute haben es durchsucht

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

Dateien von URLs in ASP.NET herunterladen oder streamen

Es kann vorkommen, dass Sie Dateien von URLs in Ihrem herunterladen oder streamen müssen ASP.NET-Anwendungen. Allerdings entstehen Herausforderungen, wenn sich diese Dateien in virtuell zugeordneten Verzeichnissen befinden, sodass es unmöglich ist, ihre tatsächlichen Speicherorte mithilfe von Server.MapPath zu bestimmen.

Eine Lösung hierfür besteht darin, die Klasse HttpWebRequest zu verwenden, um die Datei abzurufen und zu streamen zurück zum Kunden. Dadurch können Sie über URLs statt über Dateipfade auf Dateien zugreifen.

Bedenken Sie den folgenden Codeausschnitt:

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();
  }
}
Nach dem Login kopieren

Durch die Implementierung dieses Ansatzes können Sie Dateien von URLs streamen und direkt in anzeigen den Browser oder erlauben Sie Benutzern, sie auf ihren lokalen Systemen zu speichern.

Das obige ist der detaillierte Inhalt vonWie lade ich Dateien von URLs in ASP.NET herunter oder streame sie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage