java - 如何实现springmvc将返回的给前端的pdf文件放在浏览器里预览?
迷茫
迷茫 2017-04-18 09:52:15
0
5
972

想在浏览器里直接GET目标URL,然后就把PDF在浏览器里预览出来(不用前端插件的前提下),就像这样:

http://docs.spring.io/spring/...

后端代码:

@RequestMapping(value = "/showPDF", method = RequestMethod.GET)
public ResponseEntity<byte[]> pdfDownload(
        HttpServletRequest httpServletRequest
) throws IOException
{
    String path = XXX省略。。。
    File file = new File(path);
    HttpHeaders httpHeaders = new HttpHeaders();
    String fileName = file.getName();
    httpHeaders.setContentDispositionFormData("attachment",            java.net.URLEncoder.encode(fileName,"UTF-8"));
    httpHeaders.setContentType(MediaType.parseMediaType("application/pdf"));
    return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),
            httpHeaders,
            HttpStatus.CREATED);
}

然后想在前端直接GET这个URL地址:

http://localhost:8080/FileUpDown/showPDF

但是却成了下载文件而不是预览了。。。

这是chrome的输出:

**Response Headers**
*view source
Content-Disposition:form-data; name="attachment"; filename="1472111731322JavaScript%E6%9D%83%E5%A8%81%E6%8C%87%E5%8D%97.pdf"
Content-Length:21962427
Content-Type:application/octet-stream;charset=UTF-8
Date:Thu, 25 Aug 2016 08:32:56 GMT
Server:Apache-Coyote/1.1*

Conrent-Type明显不对,请问该如何解决?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

모든 응답(5)
洪涛

답변해 주셔서 감사합니다. 이것이 제 솔루션입니다.
1. 웹 경로 아래에 uploadFiles 폴더를 만듭니다.

2. springMVC에서 PDF 파일을 매핑하는 것은 정적 파일을 매핑하는 것과 같습니다.

으아아아

3. PDF의 URL 경로를 반환하는 컨트롤러를 작성합니다.

으아아아

4, 반환된 JSON 데이터입니다.

으아아아

5. PDF URL을 브라우저에서 직접 열어 PDF를 미리 봅니다.

洪涛

pdf 파일을 서버의 정적 디렉토리에 직접 배치하고 주소를 파일 경로로 리디렉션하면 브라우저가 자동으로 미리 보기를 엽니다. 로컬 디스크에 있는 다음 pdf 파일의 전체 경로를 직접 입력해 볼 수 있습니다. 브라우저를 참조하면 브라우저도 자동으로 미리보기를 엽니다

小葫芦

정적 파일에 액세스하는 것과 마찬가지로 js 파일을 어떻게 저장하고 PDF를 어떻게 저장합니까?

Peter_Zhu

응답 섹션으로 이동하세요. 응답 앞에 미리보기로 연결되는 내용이 있습니다.

伊谢尔伦

RequestMapping 줄을 다음으로 변경해 보세요.

으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿