Howto open PDF files in same browser window?

Unfortunately, no. :roll_eyes:

1개의 좋아요

안녕하세요, 저도 같은 문제를 겪고 있습니다.
PDF 파일이 표시되지 않고 항상 다운로드됩니다. 익스플로러(크롬, 파이어폭스) 설정이 무엇이든 마찬가지입니다.
읽어본 바로는 이 문제가 파일의 content_type와 관련이 있다고 합니다.
다음과 같은 내용을 찾았습니다.

아주 좋은 질문입니다! 해당 동작을 정의하는 것은 서버에서 클라이언트로 전송되는 “Content-type” 헤더입니다. s3 호환 도구를 사용하여 이 헤더의 값을 정의할 수 있습니다. 여기 좋은 설명이 있습니다:

https://stackoverflow.com/questions/39832289/pdfs-in-amazon-s3-dont-open-in-chrome-for-view

하지만 아직 진행이 되지 않고 있습니다.
문제가 Content-Type 또는 content-disposition을 지정하는 것 같지만, 업로드 시점에 처리해야 하는지 모르겠습니다.
전문가가 도와주실 수 있을까요?

이 정보는 이전 정보보다 더 명확하게 느껴졌습니다.
제 문제는 이 정보를 어떻게 활용해서 상황을 해결해야 하는지 모르겠다는 것입니다. :sob:

브라우저가 파일을 PDF로 처리하게 하려면 해당 파일이 PDF임을 브라우저에 알려야 합니다. 이를 위해 관련 헤더를 보내야 합니다:
Content-type: application/pdf

현재 s3에서 보내는 헤더는 다음과 같습니다:
Contant-type: application/octet-stream

파일을 s3에 업로드하는 것이므로, 업로드 시점에 파일의 올바른 mime-type을 설정하거나, 업로드 후 s3 도구(예: Windows용 s3cmd)를 사용하여 설정할 수 있습니다.

제공해주신 문서 링크에 따르면 putObjectFile 함수는 비권장(deprecated) 상태이지만, 이 함수의 정의는 다음과 같습니다:
putObjectFile (string $file, string $bucket, string $uri, [constant $acl = S3::ACL_PRIVATE], [array $metaHeaders = array()], [string $contentType = null])

확인할 수 있듯이 마지막 매개변수가 contentType입니다. 따라서 파일을 업로드할 때 이 값을 application/pdf로 설정할 수 있습니다.
이렇게 하면 다운로드 시 올바른 헤더가 설정됩니다.