Ich bin auf ein solches Problem gestoßen, als ich ASP zum Erstellen einer Webseite für eine bestimmte Einheit verwendet habe. Das vorherige MIS-System der Einheit hat einige Word-Dateien in Form von Byte-Streams in der Datenbank gespeichert. Jetzt verlangt der Benutzer, dass ich ASP verwende, um diese Word-Dateien zu extrahieren Daten aus der Datenbank entnommen und auf der Webseite angezeigt. Zuerst dachte ich natürlich daran, eine temporäre Datei auf dem Server zu erstellen und dann einen Link zur temporären Datei auf der Webseite hinzuzufügen. Diese Methode erhöht jedoch die Belastung des Servers erheblich und stellt sicher, dass die temporäre Datei vorhanden ist Es wird sichergestellt, dass die von einem bestimmten Client verwendeten Dateien nicht durch von anderen Clients verwendete Dateien überschrieben werden und wie die Dateien nach der Übertragung an den Benutzer gelöscht werden. Gibt es also einen besseren Weg?
Aus diesem Grund habe ich das ASP-Referenzbuch sorgfältig geprüft und festgestellt, dass das Response-Objekt ein Attribut namens contenttype hat, das den MIME-Typ des vom Server an den Client gesendeten Inhalts definiert. Der vollständige Name von MIME ist Multipurpose Internet Mail Extensions, eine Mehrzweck-Internet-Mail-Erweiterung. Wir wissen, dass wir bei der Webprogrammierung manchmal einen Hyperlink auf eine Word- oder Excel-Datei verweisen. Wenn der Benutzer auf den Link klickt, ruft der Browser automatisch die entsprechende Methode auf, um die Datei zu öffnen. Der Grund dafür ist, dass nach der Installation von Office auf dem Computer des Benutzers der entsprechende MIME-Ressourcentyp im Browser registriert wird. Der MIME-Typ einer Word-Datei ist beispielsweise Application/msword (ersterer ist ein MIME-Typ und letzterer eine MIME-Unterklasse) und der MIME-Ressourcentyp einer Excel-Datei ist Application/msexcel. Tatsächlich verfügen alle Ressourcen, die der Browser verarbeiten kann, über entsprechende MIME-Ressourcentypen. Der MIME-Typ von HTML-Dateien ist beispielsweise Text/html und der MIME-Typ von JPG-Dateien ist Image/JPG. Bei der Interaktion mit dem Server bestimmt der Browser anhand des MIME-Typs der empfangenen Daten, dass der Browser diese direkt öffnen soll , der Browser kann sie nicht selbst öffnen. Die Datei wird durch Aufruf der entsprechenden Methode geöffnet. Bei Dateien, die nicht mit einem MIME-Typ gekennzeichnet sind, errät der Browser den Typ anhand der Erweiterung und des Dateiinhalts. Wenn der Browser es nicht erraten kann, übergibt er es als application/octet-stream. Um die MIME-Typen verschiedener Dateien zu verstehen, sehen Sie sich diese bitte unter Win98 „Arbeitsplatz“ -> „Ansicht“ -> „Ordneroptionen“ -> „Dateitypen“ an.
Also hatte ich eine Idee und dachte, dass ich in ASP zuerst die WORD-Daten als Bytestream herausnehmen, dann ihr Contenttype-Attribut als Application/msword markieren und sie dann an den Client senden könnte Wird vom MIME-Typ eingegeben, ruft er Word automatisch auf dem Clientcomputer auf (die Voraussetzung ist natürlich, dass Word auf dem Clientcomputer installiert ist, andernfalls wird es als unbekannte Ressource behandelt und der Benutzer wird aufgefordert, es zu speichern, anstatt es zu öffnen). öffne es. Die Testergebnisse sind sehr gut, die Methode ist einfach und schnell und der Browser verwendet den eingebetteten Modus (ähnlich dem OLE-Modus), um ihn im IE5 zu öffnen, und der Effekt ist noch besser. Das Folgende ist der Programminhalt.
Angenommen, der Tabellenname lautet tab_word. Das eine ist eine Ganzzahl mit dem Namen id, die als eindeutige Kennung für Word-Daten verwendet wird. Das andere ist ein Blob-Typ mit dem Namen worddata, der Word-Daten speichert. Jetzt wollen wir den Inhalt der Word-Datei mit der ID gleich 1 auf der Seite anzeigen. Das ASP-Programm sieht wie folgt aus:
< %
' conn – die erstellte Datenbankverbindung
'rs – Ergebnismenge
rs = conn.execute(select
Wortdaten von tab_word, wobei id = 1)
Response.contenttype = Anwendung/msword
Antwort.writebinary(rs(worddata))
„Achten Sie darauf, die Daten im Ergebnissatz direkt mit writebinary zu senden, verwenden Sie keine Variablen.“
„Empfangen Sie diese Daten, sonst meldet das System einen Fehler.“
%>
Mit ähnlichen Methoden können Sie auch Excel, BMP und viele andere Datentypen verarbeiten.