JavaScript에서 TIFF 파일로 응답 받기 읽기

장골

서버에서 요청한 TIFF 파일을 표시하려는 웹 응용 프로그램을 개발 중입니다. 이 방법사용 하여 TIFF 파일을 표시하지만 로컬 컴퓨터에서 파일을 여는 대신 GET 요청을 통해 서버에서 이미지를 가져와야합니다.

서버 측에서는 Spark-Java 프레임 워크를 사용하여 응답을 보냅니다. 이 목적을위한 Java 코드는 다음과 같습니다.

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;
    });

.NET으로 파일을 읽기 위해 JavaScript에서 응답 (응답의 입력 스트림)을 처리하는 방법을 알 수 없습니다 FileReader().

$.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);      });

응답을 직접 입력하려고 fr.readAsArrayBuffer(data);하면 오류가 발생했습니다 Failed to execute 'readAsArrayBuffer' on 'FileReader': parameter 1 is not of type 'Blob'.

응답을 기반으로 Blob을 만들려고 할 때

var blob = new Blob([data], {type: 'image/tiff'});
  fr.readAsArrayBuffer(blob);

TIFF 파일을 구문 분석 할 수 없습니다.

내 응답은 다음과 같습니다.

로컬 호스트 응답

그리고 나는 그 응답의 의미를 이해하지 못합니다.

그렇다면이 응답에서 파일을 어떻게 검색합니까?

도움을 주셔서 감사합니다!

장골

Sandeep의 답변을 기반으로 내 질문의 목표를 달성했습니다. 소스 폴더에서 읽는 대신 서버의 원시 응답을 읽기 위해 XMLHttpRequest ()를 사용할 수 있습니다.

따라서 javaScript에서 이미지를 요청하십시오.

var xhr = new XMLHttpRequest();
xhr.responseType = 'arraybuffer';

xhr.open('get', "/image?imageName=" + imageName);
xhr.onload = function ( e ) {
    Tiff.initialize({
        TOTAL_MEMORY: 100000000
    });
    var tiff = new Tiff({
        buffer: arrayBuffer
    });

    *//...Any manipulation with tiff file*
};
xhr.send();

서버 측에서 요청을 처리하고 원시 응답을 반환합니다.

get("/image", (request, response) -> {
    String imageName = request.queryParams("imageName");
    response.raw().setContentType("image/tiff");
    response.raw().setHeader("Content-Disposition","attachment; filename=image.tiff");
    Path path = Paths.get(IMAGE_DESTINATION + "/" + imageName);
    byte[] data = null;
    try {
        data = Files.readAllBytes(path);
    } catch (Exception e) {
        e.printStackTrace();
    }
    OutputStream out = response.raw().getOutputStream();
    out.write(data);
    out.flush();
    out.close();
    return response.raw();
});

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C #에서 TIFF 파일 헤더 읽기

분류에서Dev

Visual Basic 2010 Express에서 파일 업로드 및 응답 받기

분류에서Dev

API에서 JSON으로 응답 받기

분류에서Dev

CefSharp Javascript에서 응답 받기

분류에서Dev

동일한 응답 받기

분류에서Dev

로컬 파일에 응답 보내기

분류에서Dev

VB.NET에서 파일을 업로드하고 서버 응답 읽기

분류에서Dev

response_with 요청 레일에서 응답 받기

분류에서Dev

Jest로 읽기 스트림 응답 테스트 오류 받기

분류에서Dev

ngrx @ effects에서 구성 요소로 오류 응답 받기

분류에서Dev

RTC에서 항상 응답으로 HTML 받기

분류에서Dev

낙타 경로에서 휴식 응답 받기

분류에서Dev

Windows 스토어 앱에서 httpclient로 UTF-8 응답 받기

분류에서Dev

다른 경로에서 REST APi 응답 받기

분류에서Dev

GET 요청에서 API로 응답 받기

분류에서Dev

laravel에서 vue.js2로 json 응답 받기

분류에서Dev

JAVA-시스템에서 UI로 응답 받기

분류에서Dev

erlang : SSL에서 응답 받기

분류에서Dev

axios에서 빈 응답 받기

분류에서Dev

qunit에서 recursion (-2) 응답 받기

분류에서Dev

ProximityKit KitUrl android에서 JSON 응답 받기

분류에서Dev

aspx 페이지에서 응답 받기

분류에서Dev

PHP에서 JSON 응답 받기

분류에서Dev

PHP에서 json 응답 받기

분류에서Dev

simple_udp_connection에서 응답 받기

분류에서Dev

MvcResult 개체에서 응답 받기

분류에서Dev

AJAX / PHP에서 응답 받기

분류에서Dev

C #에서 기존 TIFF 파일 압축

분류에서Dev

Angular에서 Excel 파일을 다운로드하기위한 Blob 응답을받는 방법