2014-09-22 90 views
0

我在做MVC ASP.NET網站,我必須在其中集成聯邦快遞航運。 我必須在運輸過程中創建的流程結束時打開PDF。但它不在網站服務器中打開。它在當地完美運作。我的代碼如下。請幫助我無法從網站服務器打開PDF文件

private static void SaveLabel(string labelFileName, byte[] labelBuffer) 
     { 
      // Save label buffer to file 
      FileStream LabelFile = new FileStream(labelFileName, FileMode.Create); 
      LabelFile.Write(labelBuffer, 0, labelBuffer.Length); 
      LabelFile.Close(); 
      // Display label in Acrobat 
      DisplayLabel(labelFileName); 
     } 

    private static void DisplayLabel(string labelFileName) 
     { 
      System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo(labelFileName); 
      info.UseShellExecute = true;`enter code here` 
      info.Verb = "open"; 
      System.Diagnostics.Process.Start(info); 
     } 
+0

你所得到的任何錯誤。路徑也應該是絕對路徑。 – 2014-09-22 07:09:40

回答

0

它現在可以在網站上工作。 System.Diagnostics.Process.Start用於在系統上運行相關程序。您正在服務器上運行該程序,因此文件將在服務器上打開,而不是在瀏覽器上打開。 在瀏覽器中打開pdf文件是錯誤的。

正確的做法是返回動作類型的文件或FileStreamResult:

public FileStreamResult PDFGenerator() 
{ 
    ///byte[] labelBuffer generate the buffer from pdf 
    MemoryStream ms = new MemoryStream(); 
    ms.Write(labelBuffer, 0, labelBuffer.Length); 
    ms.Position = 0; 
    return new FileStreamResult(ms, "application/pdf"); 
}