채택완료

하이퍼링크 PDF파일 강제다운로드 방법 질문드립니다.

2015-02-05 (목) 16:18:31 30,360

언제나 많이 얻어가는 sir에 감사하며 오늘도 질문만 남겨서 죄송합니다.

PDF파일을 하이퍼링크 <a href="PDF주소">다운로드</a>  로 걸면 웹상으로 브라우저가 바로 열리도록 되어있는데요

(이미지도 마찬가지죠...)

이 PDF나 이미지등을 클릭시 강제로 파일형태처럼 다운로드할수있게 만들려면 어떤형식이 필요한가요?

답변 3개 / 댓글 4개

채택된 답변
+20 포인트

제가 사용하고 있는 코드입니다.

아래 구문으로 filedown.php로 만들어서 루트에 업로드해주세요.

Copy
<? include_once('./_common.php');  $code = "$g4[path]/download"; //자신의 경로에 맞게 수정(download의 위치가 다운로드할 파일이있는 위치입니다.)$file="$code/$filename"; $file_size=filesize($file);  // 브라우저 골라서 헤더를 따로 따로 전송 해 준다.(5.5 일때는 다르게 해줘야 함) if( strstr($HTTP_USER_AGENT,"MSIE 5.5")){ header("Content-Type: doesn/matter "); header("Content-Disposition: filename=$filename "); header("Content-Transfer-Encoding: binary "); header("Pragma: no-cache"); header("Expires: 0"); }else{  Header("Content-type: file/unknown"); Header("Content-Disposition: attachment; filename=$filename"); Header("Content-Description: PHP3 Generated Data"); header("Pragma: no-cache"); header("Expires: 0"); } if(is_file("$file")){ $fp = fopen("$file","r"); if (!fpassthru($fp)) fclose($fp); }  ?>

링크를 거실때는

<a href="<?=$g4[path];?>/filedown.php?filename=피디에프 파일.pdf"/> 

이렇게 불러오시면 됩니다. "피디에프 파일.pdf"가 위에 지정한 download 폴더에 있으면 됩니다.

http://stackoverflow.com/questions/3238657/pdf-to-download-not-link-to-view-download

링크 걸어 놓습니다.

참고로 

<a href="./directory/yourfile.pdf" download="newfilename">Download the pdf</a>

 

위 구문은 html5를 지원하는 브라우저에서는 되지만, IE에서는 안되네요. OTL...​

답변에 대한 댓글 1개

익스플러 까비네요...댓글감사합니다.
2015-02-05 (목) 16:31:22

/lib/common.lib.php

이곳에 가시면 get_file이라는 펑션이 있어요.

/bbs/download.php하고 연결시켜주는건데요.

download.php는 pdf파일이라도 웹에서 열지않고 다운로드하게 해줘요.

답변에 대한 댓글 3개

아...답변 감사합니다. 다만 제가 알고싶은건 특정 게시판스킨으로 혹은 일반적인 하이퍼링크로 가능한 방법을 알고싶어서 그렇습니다. 분명 저걸 건들면 전부의 게시판이 pdf를 다운로드하게 만들어질테니까요...
2015-02-05 (목) 17:34:24
제 글의 팩트는....

download.php에 있는 소스를 이용하면 다운로드 바로 된다는거에요...

header만 있어도 다운로드 바로되요...
아...먼가 아리송하네요
제가 뒷받침되는 지식이 없어서 알아듣지 못한듯 합니다. 죄송합니다.

답변을 작성하려면 로그인이 필요합니다.