2 Stimmen

'Kein virtueller Pfad', Fehler beim Herunterladen einer Datei

Ich lade eine Datei vom Server herunter, die sich auf einem anderen Laufwerk befindet und nicht im gleichen Verzeichnis wie das Projekt.

Mein Controller-Code ist

public ActionResult GetFileFromDisk()
{
     string PFAD = @"E:\10-FEB-2012\DIR1\DIR2";
     return File(Server.MapPath( (PFAD + Dateiname ), typ, Dateiname);
}

Wenn ich Server.MapPath nicht benutze, funktioniert der Code auf meinem Rechner, aber wenn ich die Anwendung auf dem Server bereitstelle, tritt ein Fehler auf

1voto

superwalnut Punkte 319

Da es sich bereits um einen physischen Pfad handelt, müssen Sie mappath nicht verwenden, um ihn zu konvertieren. MapPath wird verwendet, um den virtuellen Pfad in einen physischen Pfad umzuwandeln. Können Sie auf dem Server überprüfen, ob die Datei auf dem Laufwerk existiert? Überprüfen Sie auch die Berechtigungen, es könnte IIS_User oder network_service benötigen.

Normalerweise lade ich die Datei und verwende dann einen Stream für das Datei-Ergebnis. Verwenden Sie die Überlastung von File(Stream stream, string contentType, string fileName)

FileInfo info = new FileInfo(packageItem.PhysicalPath);
                if (info.Exists)
                {
                    return File(info.OpenRead(), System.Net.Mime.MediaTypeNames.Application.Octet, info.Name);
                }

1voto

Kangkan Punkte 14327

Um die Datei herunterladen zu können, muss sich der Dateistandort auf der Website befinden. Auch wenn die Datei nicht in Ihrer aktuellen App verfügbar ist, muss sie in einer anderen App verfügbar sein. Andernfalls können Sie sie nicht herunterladen.

Wenn Sie ein Problem oder eine Einschränkung haben, dass Sie den Dateipfad nicht in die App einfügen können und Ihre App auf die Datei zugreifen kann (Lesen), können Sie die Datei in Ihrer Anwendung lesen und sie auf der Antwort neu schreiben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X