문의폼 완료 pdf 다운로드

문의폼 완료 pdf 다운로드

QA

문의폼 완료 pdf 다운로드

본문

안녕하세요.

문의폼 완료페이지 이동시 ppt파일은 문제없이 잘 다운로드 되는데

pdf파일은 pdf 경로로 이동이되네요ㅠ

 

문의폼 완료페이지 이동시 즉시, PDF 파일을 다운로드 할수있을까요?

도움 부탁드립니다!! ㅠㅠ

 

 


$(document).ready(function(){
      download();
  });
 
  function download(){
     location.href = "/download/test.pptx"; //문제없음
     location.href = "/download/test.pdt"; //다운로드 되지않고 링크이동됨
    }

이 질문에 댓글 쓰기 :

답변 3

location.href = "/download.php?file=test.pdf&target_Dir=/download/";

- download.php -
<?
    $filename      = $_GET["file"];
    $target_Dir = $_GET["target_Dir"];
    $file         = $_SERVER['DOCUMENT_ROOT']."/".$target_Dir."/".$filename;

    $filesize = filesize($file);

    if (is_file($file)) {

        header("Content-type: application/octet-stream"); 
        header("Content-Length: ".filesize("$file"));
        header("Content-Disposition: attachment; filename=$filename"); // 다운로드되는 파일명 (실제 파일명과 별개로 지정 가능)
        header("Content-Transfer-Encoding: binary"); 
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Pragma: public"); 
        header("Expires: 0"); 
         /*
        if (preg_match("MSIE", $_SERVER['HTTP_USER_AGENT'])) { 
            header("Content-type: application/octet-stream"); 
            header("Content-Length: ".filesize("$file"));
            header("Content-Disposition: attachment; filename=$filename"); // 다운로드되는 파일명 (실제 파일명과 별개로 지정 가능)
            header("Content-Transfer-Encoding: binary"); 
            header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
            header("Pragma: public"); 
            header("Expires: 0"); 
        }else { 
            header("Content-type: file/unknown"); 
            header("Content-Length: ".filesize("$file")); 
            header("Content-Disposition: attachment; filename=$filename"); // 다운로드되는 파일명 (실제 파일명과 별개로 지정 가능)
            header("Content-Description: PHP3 Generated Data"); 
            header("Pragma: no-cache"); 
            header("Expires: 0"); 
        }
        */
     
        $fp = fopen($file, "rb"); 
        fpassthru($fp);
        fclose($fp);
    }
    else {
        echo "해당 파일이 없습니다.";
    }
?>

화면에 출력하는것이 아니고 내 피시로 다운 로드하시려면 반드시 해당 해더가 추가 되어야 다운로드 됩니다.

 

Header("Content-type:application/octet-stream");
Header("Content-Disposition:attachment; filename=".$filename); 
 

요런식으로 해당 해더를 상단에 파일명과 함께 넣어보시기 바랍니다.

 

저도 정확한건 아닙니다만,
PDF는 사용자환경에 따라 브라우저 뷰어로 보여지거나 , 다운로드 될 수 있기에 
이럴 경우 php 다운로드를 따로 만들어서 다운로드 되도록 처리합니다.

 

만들땐 /bbs/download.php 파일을 참고해서 만들었습니다.
 

답변을 작성하시기 전에 로그인 해주세요.
전체 123,620 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT