Ich entwickle eine Web-Anwendung, wo ich versuche, TIFF-Datei von einem Server angefordert anzuzeigen. Ich verwende this approach, um eine TIFF-Datei anzuzeigen, aber ich muss ein Bild von einem Server über eine GET-Anfrage erhalten, anstatt die Datei von einem lokalen Computer zu öffnen.Lesen Antwort erhalten mit TIFF-Datei in JavaScript
Auf der Serverseite verwende ich ein Spark-Java-Framework, um eine Antwort zu senden. Dies ist der Java-Code zu diesem Zweck:
get("tiff", (request, response) -> {
byte[] bytes = Files.readAllBytes(Paths.get("temp/201600004068.tif"));
HttpServletResponse raw = response.raw();
raw.setContentType("image/tiff");
raw.getOutputStream().write(bytes);
raw.getOutputStream().flush();
raw.getOutputStream().close();
return raw;
});
ich nicht herausfinden kann, wie die Antwort (Eingangsstrom in Reaktion) in JavaScript zu handhaben Sie die Datei mit FileReader()
zu lesen.
$.get("/tiff", function(data) {
var parentEl = $(this).parent();
var fr = new FileReader();
fr.onload = function(e) {
//Using tiff.min.js library - https://github.com/seikichi/tiff.js/tree/master
console.debug("Parsing TIFF image...");
//initialize with 100MB for large files
Tiff.initialize({
TOTAL_MEMORY: 100000000
});
var tiff = new Tiff({
buffer: e.target.result
});
var tiffCanvas = tiff.toCanvas();
$(tiffCanvas).css({
"max-width": "1000000px",
"width": "100%",
"height": "auto",
"display": "block",
"padding-top": "10px"
}).addClass("preview");
$(parentEl).append(tiffCanvas);
}
fr.onloadend = function(e) {
console.debug("Load End");
}
fr.readAsArrayBuffer(data); });
Wenn ich versuche, um die Antwort zu setzen direkt in fr.readAsArrayBuffer(data);
ich Failed to execute 'readAsArrayBuffer' on 'FileReader': parameter 1 is not of type 'Blob'
einen Fehler bekam.
Wenn ich versuche, einen Blob zu erstellen auf der Grundlage der Antwort
var blob = new Blob([data], {type: 'image/tiff'});
fr.readAsArrayBuffer(blob);
es nicht in der Lage ist TIFF-Datei zu analysieren.
Meine Antwort sieht wie folgt aus:
und ich verstehe nicht, die Bedeutung dieser Reaktion.
Wie kann ich die Datei von dieser Antwort abrufen?
Danke für jede Hilfe!
Bitte senden Sie die Header Ihrer Antwort. –
Allgemein: Anforderungs-URL: http: // localhost: 4567/tiff anfordern Methode: GET Statuscode: 200 OK Remote Address: [:: 1]: 4567 – iliak
Antwort-Header: Content-Type: image/tiff Server: Jetty (9.0.2.v20130417) Transfer-Encoding: chunked – iliak