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:
|
<<: Detaillierte Zusammenfassung der Übermittlungsmethoden für Webformulare
>>: Detaillierte Erklärung zu Padding und Abkürzungen im CSS-Boxmodell
Ursprüngliche Konfiguration: http { ...... Verbin...
In diesem Artikel wird der spezifische Code für J...
Vorwort Aufgrund der Projektanforderungen werden ...
[ Linux-Installation von Tomcat8 ] Tomcat deinsta...
Bei der Installation des Quellcodes von CentOS6.9...
Inhaltsverzeichnis 1. JavaScript ist Single-Threa...
Vorwort Tomcat ist ein weit verbreiteter Java-Web...
Exportstandard ({ URL (URL = URL = URL), Methode ...
>1 Starten Sie die Datenbank Geben Sie im cmd-...
Stellen Sie sich ein Szenario vor, in dem beim En...
Inhaltsverzeichnis Die Auswirkungen der gemischte...
Einführung in Debian Debian bezeichnet im weitere...
Welche Informationen möchten Sie erhalten, wenn S...
In diesem Artikelbeispiel wird der spezifische Co...
Unterschiede und Verwendungen von Datumstypen MyS...