Ich habe ein Netzwerklaufwerk, auf das ich über den Controller zugreifen kann. z.B. "\ mydrive \ filestorage". Ich möchte, dass Benutzer Dateien herunterladen können, die auf diesem Server gespeichert sind. Das bedeutet, dass ich keine URL verwenden kann, da diese Dateien außerhalb des Root-Verzeichnisses des Webservers liegen. Es ist mir auch nicht möglich, einen Webserver für dieses Laufwerk einzurichten, ich habe keine andere Möglichkeit, auf diese Daten zuzugreifen, als die Datei mit dem Controller zu lesen und sie auf diese Weise herunterzuladen.Herunterladen einer Datei von einem Remote-Server mit ASP MVC
Ich habe einige Tutorials gefunden, um es für Dateien auf dem Server zu tun, aber ich kann es nicht funktionieren, wenn Sie eine Remote-Datei verwenden. Ich möchte einen Downloadlink haben, Sie klicken darauf und die Datei wird heruntergeladen. Hier ist der Code ich habe
public ActionResult DownloadFile(string id)
{
UploadedDocument document = new UploadedDocument(Int32.Parse(id));
string filecontents = System.IO.File.ReadAllText(document.FilePath);
string filetype = Helpers.GetMimeType(document.FilePath);
return File(filecontents, filetype);
}
Ich erhalte die folgende Ausnahme
System.IO.DirectoryNotFoundException: Es konnte kein Teil des Weg finden ‚C: \ inetpub \ wwwroot ...
Die Dateipfadvariable ist der Pfad eines Netzlaufwerks.
\\Netdrive\Uploads\somefile.txt
Die 2 Variablen für Dateiinhalt und Dateityp werden korrekt ausgefüllt. Die Ausnahme wird ausgelöst, wenn die Datei zurückgegeben wird. Wenn ich den Code im Debug-Modus ausführen, werden die 2 Variablen wie folgt ausgefüllt.
filecontents = "test\r\n"
filetype = "text\plain"
was ist der Wert von 'document.FilePath'? – Jamiec
Netzwerk Freigaben Pfade beginnt immer mit '\\', nicht mit '\'. Ist das ein Tippfehler? –
gab es 2 Schrägstriche, das Kommentar-Tag entfernte das erste. –