我正在將舊的 Silverlight 應用程式轉換為 .NET Core 6 上的 Blazor Server。該應用程式是一個客戶服務應用程式。
一項功能是查看存盤在硬碟驅動器上的檔案。例如,客戶合同的 PDF 檔案存盤在共享驅動器上。該檔案的路徑存盤在資料庫中。因此,在 Silverlight 應用程式中,最終用戶只需單擊“查看合同”按鈕并使用檔案路徑,Silverlight 就會在 Adob??e Reader 或與檔案型別相關聯的任何應用程式中打開檔案。此功能運行良好。
現在我需要在 Blazor 中復制該功能,這當然只是一個瀏覽器。如果 PDF 在 SQL Server 中作為位元組存盤在資料庫中,則服務器很容易獲取檔案,然后將其作為檔案提供給最終用戶。但它存盤在共享驅動器上。
在這種情況下如何提供 PDF?
uj5u.com熱心網友回復:
使用 SyncFusion 意味著您必須在頁面內呈現組件。我使用了兩個 SyncFusion 組件來渲染 PDF,但性能并不理想。我寧愿建議您添加<a target="_blank" href="URI">呼叫在查詢字串中傳遞 N 個引數的端點。然后,您回傳檔案。這樣,流是在服務器和瀏覽器之間進行的,并且應用程式是非阻塞的。
uj5u.com熱心網友回復:
好吧,事實證明這比我想象的要使用 PDF 查看器組件要容易。
<SfPdfViewerServer DocumentPath="@DocumentPath" Height="100%" Width="1060px" ></SfPdfViewerServer>
@code{
private string DocumentPath { get; set; } = @"S:\Path\To\Test.pdf";
}
顯然,服務器必須有權訪問 PDF 的位置才能使其正常作業。但效果很好。此示例是一個 Syncfusion PDF 組件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/434790.html
