Download / Stream-Datei von URL - asp.net
Brauche ich zum streamen einer Datei, welche das speichern als Eingabeaufforderung im browser.
Das Problem ist das Verzeichnis, in dem sich die Datei befindet, ist praktisch zugeordnet, so bin ich nicht in der Lage zu verwenden Server.MapPath ermittelt die tatsächliche Lage. Das Verzeichnis ist nicht in der gleichen Lage (oder sogar körperliche-server auf die live-Boxen) als die Webseite.
Ich würde gerne so etwas wie die folgenden, aber das wird mir erlauben, zu passieren, eine web-URL, und nicht eine Datei-server-Pfad.
Darf ich haben, um am Ende mit dem Aufbau meiner Datei-Pfad aus config base Pfad, und dann fügen Sie den rest des Weges, aber hoffentlich kann ich es auf diese Weise statt.
var filePath = Server.MapPath(DOCUMENT_PATH);
if (!File.Exists(filePath))
return;
var fileInfo = new System.IO.FileInfo(filePath);
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", String.Format("attachment;filename=\"{0}\"", filePath));
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.WriteFile(filePath);
Response.End();
InformationsquelleAutor der Frage mp3duck | 2011-04-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie HttpWebRequest-Klasse, um die Datei und übertragen Sie Sie an den client zurück. Dies ermöglicht es Ihnen, um die Datei mit einer url. Ein Beispiel, das ich gefunden habe ( aber kann mich nicht erinnern, wo Kredit geben ) ist
InformationsquelleAutor der Antwort Dallas
Ich mache das ganz ein bisschen und dachte, ich könnte noch eine einfachere Antwort. Ich habe es als eine einfache Klasse hier, aber ich benutze diese jeden Abend zu sammeln, finanzielle Daten über Unternehmen, die ich verfolge.
Ich In diesem Fall übergeben Sie eine url, und es gibt die Seite als HTML. Wenn Sie möchten, etwas anderes zu tun mit dem Strom stattdessen können Sie leicht ändern Sie diese.
Verwenden Sie es wie folgt:
InformationsquelleAutor der Antwort CodeChops
Download-url zu bytes und konvertiert Byte in stream:
InformationsquelleAutor der Antwort Berezh
2 Jahre später, habe ich verwendet, Dallas' Antwort, aber ich hatte zu ändern, die
HttpWebRequest
zuFileWebRequest
da war ich die Verknüpfung zu den direkten Dateien. Nicht sicher, ob dies überall der Fall ist, aber ich dachte, ich würde es hinzufügen. Auch habe ich entferntvar resp = Http.Current.Resonse
und nur verwendet
Http.Current.Response
im Ort, woresp
verwiesen wurde.InformationsquelleAutor der Antwort Tingo
Sie könnten versuchen, mit der DirectoryEntry-Klasse mit dem IIS-Pfad-Präfix:
InformationsquelleAutor der Antwort Andreas Paulsson