2016-11-22 6 views
-3

Ich möchte Datei vom virtuellen Pfad herunterladen.Datei von virtueller URL herunterladen mit C#

http://localhost:60181/DocTemplates/Forms/HO/test.pdf

Datei wird für die dynamische Erweiterung bedeutet, kann es pdf-Datei oder Dokumente sein.

Ich möchte Datei mit Byte-Stream herunterladen bedeutet zuerst Datei in Byte-Stream und nach dem Download zu konvertieren.

Oben Datei herunterladen nach dem Klicken auf Hyperlink.

Ich weiß nicht, wie Sie diese Aufgabe erledigen, bitte geben Sie mir einen Rat.

Danke.

+1

Was Sie schon dieses Problem zu lösen versucht haben? Z.B. Stellen Sie einige Code-Snippet – rbr94

+0

Ich vermute, Ihre eigentliche Frage ist das genaue Gegenteil von dem, was Sie eingegeben haben. Sie möchten nichts von einer URL herunterladen, Sie möchten einen Controller erstellen, der Dateien an Clients sendet, wenn * sie * eine Anfrage senden. Sie können ein FileResult mit einem einfachen 'File (somePath)' Aufruf zurückgeben. Sie müssen Ihre Routing-Konfiguration so einstellen, dass alles nach der Zuweisung Ihres Controllers zu Parametern erfolgt. Wenn Ihr Controller beispielsweise 'FormsController' ist, könnten Sie eine Route erstellen, um den Rest der URL einem Parameter zuzuordnen, oder separate Teile zu separaten Parametern. –

+0

Es gibt eine Menge Fragen darüber, wie Sie Dateien zurückgeben und noch mehr Fragen wie man das Routing einrichtet. –

Antwort

1

Ich habe etwas Einfaches wie den Web Client in Ihrem Controller verwendet.

System.Net.WebClient client = new WebClient(); 
client.DownloadFile("url", "directory + filename"); 

Geben Sie einfach die URL der Datei, die Sie herunterladen möchten, und dann das Verzeichnis und Dateinamen wie die Datei gespeichert werden soll.

Sie können dann tun, was Sie mit der Datei in Ihrem Controller wollen.

Sie können auch versuchen:

using (FileStream fs = File.OpenRead(path)) 
{ 
    int length = (int)fs.Length; 
    byte[] buffer; 

    using (BinaryReader br = new BinaryReader(fs)) 
    { 
     buffer = br.ReadBytes(length); 
    } 

    Response.Clear(); 
    Response.Buffer = true; 
    Response.AddHeader("content-disposition",  String.Format("attachment;filename={0}", Path.GetFileName(path))); 
    Response.ContentType = "application/" +  Path.GetExtension(path).Substring(1); 
    Response.BinaryWrite(buffer); 
    Response.End(); 
} 
+0

Ich möchte den Pfad zu Binär-Stream konvertieren und es herunterladen. –

+0

Warum möchten Sie es selbst in Binär-Stream konvertieren, ist es mit den APIs getan, ohne dass Sie es überhaupt wissen? –

1
using (var client = new WebClient()) 
{ 
    var content = client.DownloadData(url); 
    using (var stream = new MemoryStream(content)) 
    { 
     ... 
    } 
} 

vielleicht Sie suchen diese dann

+0

Bitte schreiben Sie den ganzen Code. –