Bạn đã tải các tệp lên trang này để đọc chúng. Đến một lúc nào đó, ai đó hỏi liệu cùng một chức năng có thể tồn tại bên trong ứng dụng bạn đang làm việc — một hồ sơ vụ việc, một yêu cầu bồi thường, một bản vẽ — có thể được mở trong trang của bạn thay vì tải xuống hay không. Điều đó có thể, và quyết định này đơn giản hơn vẻ bề ngoài, vì chỉ có một điều thực sự thay đổi.

Điều duy nhất thay đổi: nơi tệp được đưa tới
Ở đây, bạn tải lên một tài liệu cho chúng tôi, nó được render và sẽ bị xóa khi bạn đóng nó. Đó là cách trao đổi hợp lý cho một tệp mà bạn chỉ nhận một lần và muốn đọc ngay.
Đó là cách trao đổi không phù hợp cho một tài liệu không phải của bạn để di chuyển. Hồ sơ y tế, hợp đồng đã ký, bản vẽ dưới NDA — những tài liệu này không thể rời khỏi hạ tầng của bạn, và không có lời hứa nào về việc xóa sẽ giải quyết được, vì tệp vẫn đã được truyền đi. Khi nhúng bộ render, mọi thứ được đảo ngược: tài liệu được mở bởi máy chủ của bạn, trong mạng nội bộ, và những gì đến trình duyệt chỉ là bản render. Tệp không bao giờ di chuyển.
Đó là lý do để nhúng. Những thứ còn lại chỉ là chi tiết.
Nó là một thành phần, không phải một widget
Điều mà mọi người thường hiểu sai đầu tiên: đây không phải là JavaScript mở tệp trong trình duyệt. Đó là một thành phần .NET gốc mà bạn tham chiếu từ dự án của mình, và quá trình render diễn ra phía máy chủ. Trang của bạn nhận được kết quả.
Hai hệ quả sau đó. Hệ quả tốt: trình duyệt không cài đặt gì — không plugin, không ActiveX, không trình đọc — vì vậy nó hoạt động giống nhau trên máy tính để bàn được khóa và trên điện thoại. Hệ quả cần chuẩn bị: máy chủ của bạn thực hiện công việc, vì vậy một PDF 200 trang và một bản vẽ 40 MB không phải là cùng một yêu cầu. Hãy cấu hình máy cho tệp lớn nhất bạn sẽ chấp nhận, và từ chối bất kỳ tệp nào lớn hơn khi tải lên.
Những gì bạn cần quyết định trước khi bắt đầu
Ba câu hỏi, và không câu nào liên quan đến trình xem:
- Tài liệu đến từ đâu — cơ sở dữ liệu, chia sẻ tệp, lưu trữ blob?
- Ai được phép xem tài liệu này, và URL của trình xem có thực thi điều đó hay chỉ giả định? Một endpoint render trả lời cho bất kỳ ai có ID tài liệu là lỗ hổng cổ điển.
- Điều gì xảy ra với các tệp tạm thời mà quá trình render tạo ra, và khi nào.
Trả lời những câu hỏi này và việc tích hợp sẽ ngắn gọn. Để chúng lại cho sau và bạn sẽ phải gắn thêm quyền truy cập vào một trình xem đã hoạt động, điều này tệ hơn.
Nơi nó chạy
.NET Framework 4.0 trở lên, và .NET Standard 2.0 trở lên — vì vậy hỗ trợ WebForms, MVC, ASP.NET Core, Blazor Server và các container Linux. Office không cần được cài đặt trên máy chủ; bộ render đọc các định dạng trực tiếp.
Nếu bạn chỉ muốn đọc một tệp hôm nay, đó là mục đích của Trình xem PDF và các trình xem khác ở đây. Nếu đó là ứng dụng bạn đang nghĩ tới, thành phần, các gói và tài liệu API của nó có tại Doconut.com.