So empfangen Sie einen binären Dateistream in Vue, um eine PDF-Vorschau zu realisieren

So empfangen Sie einen binären Dateistream in Vue, um eine PDF-Vorschau zu realisieren

Hintergrund-Controller

@RequestMapping("/getPDFStream")
@AntwortBody
public void getPDFStream(HttpServletRequest Anfrage,HttpServletResponse Antwort) {
 versuchen {
  Anfrage.setCharacterEncoding("utf-8");
 } Fang (UnsupportedEncodingException e) {
  logger.error("Zeichensatz UnsupportedEncodingException festlegen");
 }
 String Dateiname = Anfrage.getParameter("Dateiname");
 //DateipfadString filePathname = Const.UPLOAD_HBFILE_PATH + "/" + fileName
   + ".pdf";
 Datei Datei = neue Datei (Dateipfadname);
 byte[] Daten = null;
 wenn (!file.exists()) {
  logger.error("Leider existiert die Datei nicht!");
 } anders {
  versuchen {
   FileInputStream-Eingabe = neuer FileInputStream(Datei);
   Daten = neues Byte[Eingabe.verfügbar()];
   Eingabe.Lesen(Daten);
   Antwort.getOutputStream().write(data);
   Eingabe.schließen();
  } Fang (Ausnahme e) {
   // TODO Automatisch generierter Catch-Block
   e.printStackTrace();
   logger.error("Ausnahme bei der Verarbeitung der PDF-Datei");
  }
 }
}

Rezeption

Kapseln Sie Axios, Request.js

Axios von „Axios“ importieren
/**
 * Methode zum Kapseln asynchroner Axios-Anfragen==================
 */
//Erstellen Sie ein Axios-Objekt-----------
const Anfrage = axios.erstellen({
    //baseURL:'/dev-api', //Basispfad baseURL:process.env.VUE_APP_BASE_API, //Lade je nach Umgebung unterschiedliche Konstantenwerte // baseURL: '/',
    timeout: 50000, //Anforderungstimeout, 50000 Millisekunden})
//Anforderungs-Interceptor einrichten======================================
//Abfangen anfordern--------------------
request.interceptors.request.use(config => {
    //Abfangen der Anforderung config.data = {
        ...Konfigurationsdaten,
        Benutzer-ID: sessionStorage.getItem('Benutzer-ID')
    }
    Konfiguration zurückgeben;
}, Fehler => {
    //Ausnahme return Promise.reject(error); //es6 schreibt });
//Antwort-Interceptor einrichten====================================
//Auf Abfangen reagieren--------------------
Anfrage.Interceptors.Response.Verwenden(Antwort => {
    wenn(!response.data||response.data==""){
        return '{"flag":"failure","msg":"Unbekannter Fehler"}';
    }
    Antwortdaten zurückgeben;
},Fehler =>{
    returniere Promise.reject(Fehler);
})
Export-Standardanforderung //Exportieren Sie benutzerdefinierte Axios-Objekte zur Verwendung durch andere Komponenten

Definieren Sie die Methode common.js

Importanforderung von '@/utils/request' //Importiere die gekapselte Axios-Anforderungsmethode Exportfunktion getPDFStream(param) {
   Rückgabeanforderung({
        URL: "xxxxxx/getPDFStream",
        Methode: 'post',
        // Parameterdaten übergeben: param,
        Header: { 'Inhaltstyp': 'Anwendung/x-www-form-urlencoded' },
        Antworttyp: "Blob",
        transformRequest: Funktion(Objekt) {
            var str = [];
            für (var p in obj)
                str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
            return str.join("&");
        },
 })
}

Seitencode

 <a-modal
  Breite="900px"
  Titel="Dateiansicht"
  v-Modell="lookPdfFile"
  :Fußzeile="null"
  :forceRender="wahr"
  @ok="PDF-Datei ansehen"
>
  <div :style="{ Höhe: '600px', min. Höhe: '500px', Rand: '8px 0px' }">
     <iframe: src="pdfUrl" id="VorschauPDF" frameborder="0" style="Breite: 100 %; Höhe: 100 %"></iframe>
  </div>
</a-modal>
//Importmethodeimport {getPDFStream} von "@/api/common";
//Daten definieren
lookPdfFile:false, //PDF-Vorschau
pdfUrl:'', // PDF-Pfad

Schlüsselcode (rufen Sie nach Erhalt des Dateinamens die Methode getPDFStream auf, um den Dateistream abzurufen)

 lass _this = dies;
 wenn(Suffix == 'pdf'){
   getPDFStream({
     Dateiname: Dateiname,
   }).dann(res => {
     let reader = neues Fenster.FileReader();
     // Verwenden Sie readAsArrayBuffer, um die Datei zu lesen. Die Ergebniseigenschaft enthält ein ArrayBuffer-Objekt, um die Daten der gelesenen Datei darzustellen. reader.readAsArrayBuffer(res);
     reader.onload = Funktion(e) {
       const Ergebnis = e.Ziel.Ergebnis
       const Inhaltstyp = res.Typ
       // Blob-Bild generieren, erfordert Parameter (Byte-Array, Dateityp)
       const blob = neuer Blob([Ergebnis], { Typ: 'Anwendung/pdf' })
       // Verwenden Sie Blob, um eine URL zu erstellen, die auf ein typisiertes Array verweist. URL.createObjectURL ist eine Methode einer neuen Blob-Datei, die eine normale URL generieren und direkt verwendet werden kann, z. B. auf img.src if (window.createObjectURL != undefined) { // basic
         _this.pdfUrl = Fenster.createObjectURL(blob)+'#toolbar=0'
       } sonst wenn (window.webkitURL != undefiniert) { // WebKit oder Chrome
         versuchen {
           _this.pdfUrl = Fenster.webkitURL.createObjectURL(blob)+'#toolbar=0'
         } Fehler abfangen {

         }
       } sonst wenn (window.URL != undefiniert) { // mozilla(firefox)
         versuchen {
           _this.pdfUrl = Fenster.URL.createObjectURL(blob)+'#toolbar=0'
         } Fehler abfangen {

         }
       }
     }
     dies.$nextTick(() => {
       dies.lookPdfFile = wahr;
     })
   })
   zurückkehren;
 }

Dies ist das Ende dieses Artikels zum Empfangen von Binärdateiströmen in Vue zur Implementierung der PDF-Vorschau. Weitere relevante Inhalte zur PDF-Vorschau von Vue-Binärdateiströmen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • vue-pdf realisiert Online-Dateivorschau
  • So zeigen Sie eine PDF-Datei mit pdfjs in vue in der Vorschau an
  • Vue-pdf implementiert eine Online-Vorschau von PDF-Dateien
  • Vue integriert PDF.js, um eine PDF-Vorschau zu implementieren und Schritte zum Hinzufügen von Wasserzeichen durchzuführen
  • vue Beispielcode zur Verwendung von vue-pdf zur Implementierung einer PDF-Onlinevorschau
  • Vue implementiert Online-Vorschau von PDF-Dateien und Download (pdf.js)
  • Vue-Plugin-Entwicklung: So verwenden Sie pdf.js, um eine Online-Vorschau von PDF-Dokumenten auf Mobiltelefonen zu realisieren
  • So implementieren Sie die PDF-Dateivorschau in Vue

<<:  Detaillierte Zusammenfassung der Übermittlungsmethoden für Webformulare

>>:  Detaillierte Erklärung zu Padding und Abkürzungen im CSS-Boxmodell

Artikel empfehlen

Erklären Sie anhand eines Diagramms, was Web 2.0 ist

Heutzutage sprechen wir oft über Web 2.0. Was als...

Vue3 realisiert den Bildlupeneffekt

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierter Prozess zum Dekomprimieren und Installieren von mysql5.7.17 zip

1. Adresse herunterladen https://dev.mysql.com/do...

6 Möglichkeiten zur eleganten Handhabung von Objekten in JavaScript

Inhaltsverzeichnis Vorwort 1. Objekt.freeze() 2. ...

Codebeispiel für das Nutzungsszenario der Nginx-Domänenweiterleitung

Szenario 1: Aufgrund von Serverbeschränkungen ist...

js implementiert das klassische Minesweeper-Spiel

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erklärung zur Verwendung der Vue h-Funktion

Inhaltsverzeichnis 1. Verstehen 2. Verwendung 1. ...

MySQL 8.X Installations-Tutorial unter Windows

Zuvor habe ich MySQL 5.7 verwendet, aber da MySQL...

So erstellen Sie mit Harbor ein privates Docker-Repository

Inhaltsverzeichnis 1. Open-Source-Lagerverwaltung...

Best Practices für MySQL-Upgrades

MySQL 5.7 fügt viele neue Funktionen hinzu, wie z...

Detailliertes Tutorial zur Verwendung von stimulsoft.reports.js mit vue-cli

vue-cli verwendet stimulsoft.reports.js (Tutorial...

JavaScript+HTML zur Implementierung eines Studenteninformationsmanagementsystems

Inhaltsverzeichnis 1. Einleitung 2. Rendern 3. Co...