Umgang mit FileContentResult, wenn die Datei nicht gefunden wird

Habe ich eine controller-Aktion, die downloads einer Datei von einem azure-blob-basierend auf den container-Verweis-name (D. H. vollständigen Pfadnamen der Datei in das blob). Der code sieht ungefähr so aus:

public FileContentResult GetDocument(String pathName)
{
    try
    {
        Byte[] buffer = BlobStorage.DownloadFile(pathName);
        FileContentResult result = new FileContentResult(buffer, "PDF");
        String[] folders = pathName.Split(new char[] { '\\' }, StringSplitOptions.RemoveEmptyEntries);
        //get the last one as actual "file name" based on some convention
        result.FileDownloadName = folders[folders.Length - 1];

        return result;
    }
    catch (Exception ex)
    {
        //log error
    }
    //how to handle if file is not found?
    return new FileContentResult(new byte[] { }, "PDF");
}

Den BlobStorage Klasse es ist meine Hilfsklasse laden Sie die Streams aus dem blob.

Meine Frage ist vermerkt im code Kommentar: Wie soll ich damit umgehen das Szenario, wenn die Datei/stream wird nicht gefunden? Derzeit leite ich eine leere PDF-Datei, die ich fühle, ist nicht der beste Weg, es zu tun.

  • Dies nennt man aus der Sicht via javascript.
  • Was sollte der Datentyp auf der ajax-call? @Alex R könnten Sie auch zeigen, wie die ajax-Aufruf gemacht in der Ansicht, es wäre hilfreich.
  • Die Frage ist bereits beantwortet. Sind Sie auch mit dem gleichen Problem? Der Aufruf von javascript ist einfach window.location.href = "GetDocument?pathName=" + docPath;. Aufrufen, werden die controller-action vor und reagieren entsprechend.
  • ja habe ich , ich bin nicht in der Lage, öffnen Sie die Datei meine Ansicht sieht so aus var options = { iframe: true, dataType: "html", url: "Upload/Previewfile" }; Vorschau-Datei ist ähnlich zu Ihrem GetDocument nach der Ausführung dieser ishould bekommen popup zu öffnen, die Datei aber ich bin nicht immer.Haben Sie eine Idee, oder soll ich den Beitrag als eine Frage? danke.
  • Ja, besser, schicken Sie es als eine separate Frage. Das ist, wie es hier funktioniert. Ich werde froh sein zu helfen, wenn ich kann.
InformationsquelleAutor Alex R. | 2011-06-23
Schreibe einen Kommentar