2015-03-31 125 views
-1

如何打開已保存在客戶端服務器上的pdf文件。我正在創建一個過程來做到這一點,但它沒有工作 (System.Diagnostics.Process.Start(pdfFilePath + pdffileName);)。 我需要在客戶端打開此文件,因爲它們需要將它發送給標籤打印。未從網站加載pdf文件

+0

發佈任何錯誤消息,你還有什麼意思是「沒有工作」 – Haris 2015-03-31 14:48:10

+0

那裏沒有任何錯誤消息發生。我一直在使用process.start在本地打開PDF文件,而當我發佈我的網站時仍在開發中,我試圖從網站加載PDF文件,現在什麼都沒有發生。我不確定我能做些什麼來解決這個問題。 – 2015-03-31 14:57:20

回答

0

嘗試將文件寫入響應。您嘗試在服務器上打開它。

Context.Response.Buffer = false; 
     FileStream inStr = null; 
     byte[] buffer = new byte[1024]; 
     long byteCount; inStr = File.OpenRead(pdfFilePath + pdffileName); 
     while ((byteCount = inStr.Read(buffer, 0, buffer.Length)) > 0) { 
      if (Context.Response.IsClientConnected) { 
       Context.Response.ContentType = "application/pdf"; 
       Context.Response.OutputStream.Write(buffer, 0, buffer.Length); 
       Context.Response.Flush(); 
      } 
     } 
+0

謝謝你完美的工作。 – 2015-04-01 15:53:42

0

您也需要到流的文件給客戶端(如上面的回答表示),或將其保存到一個位置下網站和給用戶一個鏈接。您不需要啓動進程 - 鏈接到該文件,瀏覽器將找出使用哪個應用程序打開它。

(您可能需要在IIS中設置MIME類型)

例如,假設你在現場保存下PDFFiles:

HyperLink pdfLink = new Hyperlink(); 
pdfLink.NavigateUrl = "~/PDFFiles/" + filename 

然後將鏈接添加到您的頁面控件。 (或者你可以在ASPX文件中對鏈接進行硬編碼,並在代碼隱藏中設置NavigateUrl屬性 - 但是你想這樣做)