Προσθέστε έναν προβολέα εγγράφων στην δική σας εφαρμογή ASP.NET
1/8/2023

Προσθέστε έναν προβολέα εγγράφων στην δική σας εφαρμογή ASP.NET

Έχετε ανοίξει αρχεία εδώ. Τοποθετώντας τον ίδιο renderer στην δική σας εφαρμογή ASP.NET αλλάζει ένα πράγμα που μετρά: πού πηγαίνει το έγγραφο.

Έχετε ανεβάσει αρχεία σε αυτόν τον ιστότοπο για να τα διαβάσετε. Κάποια στιγμή κάποιος ρωτά αν το ίδιο μπορεί να λειτουργήσει μέσα στην εφαρμογή στην οποία εργάζεστε — ένα φάκελο υπόθεσης, μια αξίωση, ένα σχέδιο, ανοιγμένο στη δική σας σελίδα αντί να κατεβάζεται. Μπορεί, και η απόφαση είναι μικρότερη απ' ό,τι φαίνεται, επειδή μόνο ένα πράγμα πραγματικά αλλάζει.

Προβολέας Εγγράφων ASP.NET
Προβολέας Εγγράφων ASP.NET

Το ένα πράγμα που αλλάζει: πού πηγαίνει το αρχείο

Εδώ, ανεβάζετε ένα έγγραφο σε εμάς, αυτό αποδίδεται και διαγράφεται όταν το κλείσετε. Αυτή είναι η σωστή ανταλλαγή για ένα αρχείο που σας εστάλη μία φορά και θέλετε να το διαβάσετε τώρα.

Είναι η λανθασμένη ανταλλαγή για ένα έγγραφο που δεν είναι δικό σας να μετακινήσετε. Ένα ιατρικό αρχείο, μια υπογεγραμμένη σύμβαση, ένα σχέδιο υπό NDA — αυτά δεν μπορούν να φύγουν από την υποδομή σας, και καμία υπόσχεση διαγραφής δεν το διορθώνει, επειδή το αρχείο παρέμεινε ταξιδιωμένο. Η ενσωμάτωση του renderer το αντιστρέφει: το έγγραφο ανοίγει από τον διακομιστή σας, μέσα στο δίκτυό σας, και αυτό που φτάνει στον περιηγητή είναι μια απόδοση. Το αρχείο ποτέ δεν κινείται.

Αυτός είναι ο λόγος για την ενσωμάτωση. Ό,τι άλλο είναι λεπτομέρεια.

Είναι ένα στοιχείο, όχι ένα widget

Το μέρος που οι άνθρωποι κάνουν λάθος πρώτα: αυτό δεν είναι JavaScript που ανοίγει το αρχείο στον περιηγητή. Είναι ένα εγγενές στοιχείο .NET που αναφέρετε από το πρότζεκτ σας, και η απόδοση συμβαίνει στον διακομιστή. Η σελίδα σας λαμβάνει το αποτέλεσμα.

Δύο συνέπειες ακολουθούν. Η καλή: ο περιηγητής δεν εγκαθιστά τίποτα — κανένα plugin, κανένα ActiveX, κανέναν αναγνώστη — έτσι λειτουργεί το ίδιο σε έναν κλειδωμένο υπολογιστή όσο και σε ένα τηλέφωνο. Η μία που πρέπει να προγραμματίσετε: ο διακομιστής σας κάνει τη δουλειά, έτσι ένα PDF 200 σελίδων και ένα σχέδιο 40 MB δεν είναι το ίδιο αίτημα. Διαμορφώστε τη μηχανή για το μεγαλύτερο αρχείο που θα αποδεχτείτε, και απορρίψτε οτιδήποτε μεγαλύτερο κατά το ανέβασμα.

Τι πρέπει να αποφασίσετε πριν ξεκινήσετε

Τρία ερωτήματα, και κανένα από αυτά δεν αφορά τον προβολέα:

  • Από πού προέρχονται τα έγγραφα — μια βάση δεδομένων, ένα κοινόχρηστο αρχείο, αποθήκη blob;
  • Ποιος επιτρέπεται να δει αυτό, και η διεύθυνση URL του προβολέα την επιβάλλει ή απλώς το υποθέτει;
  • Τι συμβαίνει με τα προσωρινά αρχεία που παράγει η απόδοση, και πότε.

Απαντήστε σε αυτά και η ενσωμάτωση θα είναι σύντομη. Αφήστε τα για αργότερα και θα προσπαθήσετε να προσθέσετε εξουσιοδότηση σε έναν προβολέα που ήδη λειτουργεί, κάτι που είναι χειρότερο.

Πού εκτελείται

.NET Framework 4.0 και άνω, και .NET Standard 2.0 και άνω — έτσι WebForms, MVC, ASP.NET Core, Blazor Server και Linux containers. Το Office δεν χρειάζεται να εγκατασταθεί στον διακομιστή· ο renderer διαβάζει τις μορφές απευθείας.

Αν θέλετε μόνο να διαβάσετε ένα αρχείο σήμερα, αυτό είναι για τον Προβολέας PDF και τους υπόλοιπους προβολείς εδώ. Αν πρόκειται για την εφαρμογή που σκέφτεστε, το στοιχείο, τα πακέτα του και η τεκμηρίωση API βρίσκονται στο Doconut.com.