크롬80버전 결제 이슈, 영카트5 주요패치 확인!

그누보드5 파일 다운로드 오류문제

그누보드5
영카트5
매뉴얼
Q & A
제작의뢰
컨텐츠몰
부가서비스
소모임
커뮤니티
그누보드5 파일 다운로드 오류문제

QA

사수가 없어도 할 수 있다! 초보자를 위한 그누보드 FAQ

그누보드5 파일 다운로드 오류문제

본문

그누보드5를 이용하여 홈페이지를 두개 만들었는데 하나는 거의 순정에 가깝고 제가 직접 제작한거라

download.php를 건드리지 않고 제작하여 어떤 파일도 문제없이 다운받아지는데

 

다른분이 공부하라고 만들어주신 사이트는 download.php가 몇줄정도 변형되어있어 순정파일로 바꾸면

다운로드가 진행도 되지 않고 그대로 두면 파일들이 아래와 같이 그냥 브라우저에서 열려버립니다.

 

%PDF-1.5 %µµµµ 1 0 obj <>>> endobj 2 0 obj <> endobj 3 0 obj <>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R] /MediaBox[ 0 0 595.44 841.68] /Contents 4 0 R/Group<>/Tabs/S/StructParents 0>> endobj 4 0 obj <> stream xœµ]Ýܸ‘7àÿ¡‘§îàFC¿³ê $¹$6pÞ<ø6½ÞÜf=»³ãøî¿?%u‹Å¢ÔZØŒ»Õ¬K¬V‹›û¿lîÿtøýqÃÞ¼Ùì‡ÍO¯_íß½~uÿÈ7À*&7ï¾}ýŠo˜ÿßp§*É7FÊJøo~xý 6ïž7¬R”Ù|yýŠm>â~÷úÕû‡} ¼àoþ¾y÷‡×¯N~Ø¿¾~µ9ýé°Ùô(ó!eHPá)»BÊÛÍ.OŠHJ^±ÂÉúO7vóî›÷[Ë(ò¢„× meU)¯k-ÜžïÁkY2qÁlåÄZ¼V%“\VÒ/,çÔ¾VÔduÑd•¬T)›ÉÉš¢ÉjÿQùd9¸ú ŽÄdmK¹!+d%óE¯ujf£ÁÝý?|ú¸Ù~ÿ´q•Óñ²u¦2~rž~K…›³äàÃñ˜©xÙx|¬_dž8ÏmU¥šÑ7wþ#¦ý‡(˼ê‘êÃâŒWZG?dáyl#Åท?ý±Ûõ!÷<øä]”Ó(Ý*,å^—:ÛŸ‚-'X*Çïß@ÃQ •jǾ›à¡Q•°ñ£y*"ÎÄ­_$шÎwf¯ÞäÖÑÀ0Øù7¢ç@5Tî¥ÑB5a/Ç[ *÷’gõ¨Ž„ ¢Ò1ÔÚxÍsÇùÞiåmO–ÅÀHÜZTÊ–ãžZÚZ£ÚébwwnËòCÉË*è3ÕK#ø”åÔìÁ/!"A|½Ý݉-

 

일부분만 잘라온거구요 pdf txt 등등등 다 브라우저내에서 실행이됩니다.

다른 검색부분에서 

 

if(preg_match("/msie/i", $_SERVER['HTTP_USER_AGENT']) && preg_match("/5\.5/", $_SERVER['HTTP_USER_AGENT'])) {
    header("content-type: doesn/matter");
    header("content-length: ".filesize("$filepath"));
    header("content-disposition: attachment; filename=\"$original\"");
    header("content-transfer-encoding: binary");
} else if (preg_match("/Firefox/i", $_SERVER['HTTP_USER_AGENT'])){
    header("content-type: file/unknown");
    header("content-length: ".filesize("$filepath"));
    header("content-disposition: attachment; filename=\"".basename($file['bf_source'])."\"");
    header("content-description: php generated data");
} else {
    header("content-type: file/unknown");
    header("content-length: ".filesize("$filepath"));
    header("content-disposition: attachment; filename=\"$original\"");
    header("content-description: php generated data");
}
header("pragma: no-cache");
header("expires: 0");
flush();

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

이 부분을 아래로 변경해주는

 

  // Must be fresh start
  if( headers_sent() )
    die('Headers Already Sent');

  // Required for some browsers
  if(ini_get('zlib.output_compression'))
    ini_set('zlib.output_compression', 'Off');

// Parse Info / Get Extension
$fsize = filesize($filepath);
$path_parts = pathinfo($filepath);
$ext = strtolower($path_parts["extension"]);

    // Determine Content Type
    switch ($ext)
    {
      case "pdf": $ctype="application/pdf"; break;
      case "exe": $ctype="application/octet-stream"; break;
      case "zip": $ctype="application/zip"; break;
      case "doc": $ctype="application/msword"; break;
      case "xls": $ctype="application/vnd.ms-excel"; break;
      case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
      case "gif": $ctype="image/gif"; break;
      case "png": $ctype="image/png"; break;
      case "jpeg":
      case "jpg": $ctype="image/jpg"; break;
      default: $ctype="application/force-download";
    }

    header("Pragma: public"); // required
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: private",false); // required for certain browsers
    header("Content-Type: $ctype");
    header("Content-Disposition: attachment; filename=\"".basename($filepath)."\";" );
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".$fsize);
    ob_clean();
    flush();
-----------------------------------------------------

검색 소스도 확인해보고 수정 해봤지만 하얀 화면으로 먹통이 됩니다.

다시 또 돌리면 진행은 되지만 위 오류처럼 브라우저에서 바로 열려버리구요

 

도움을 얻고 싶습니다.

이 글을 내 페이스북 계정으로 보내기 이 글을 내 트위터 계정으로 보내기

이 질문에 댓글 쓰기 :

답변 1

나인보스님의 답변

순정으로 변경하고 그부분에 대한 에러를 잡는게 편할듯합니다.
그누보드에서 넘겨주는 값은 아마 보드 id랑 wr_no인가 두가지 일거예요.

순정보드에서 넘겨주는 값 만 수정된보드에서도 넘겨 주시고 순정으로 바꿔서 사용하시는게 좋을듯하구요.

여건이 안되면 보드 리스프 파일과 증상을 보수있는 사이트도 함께 올려주시면 좋을듯합니다.
 // Determine Content Type
    switch ($ext)
    {
      case "pdf": $ctype="application/pdf"; break;
      case "exe": $ctype="application/octet-stream"; break;
      case "zip": $ctype="application/zip"; break;
      case "doc": $ctype="application/msword"; break;
      case "xls": $ctype="application/vnd.ms-excel"; break;
      case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
      case "gif": $ctype="image/gif"; break;
      case "png": $ctype="image/png"; break;
      case "jpeg":
      case "jpg": $ctype="image/jpg"; break;
      default: $ctype="application/force-download";
    }

 

header("Content-Type: $ctype");

위소스에서 다운로드는 위 두부분에서 결정됩니다.
만드신 의도로보면 웹에서 바로 보여주기위서 인듯한데 저부분이 필요 없을듯하구요
header("Content-Type: $ctype");  ===> header("Content-Type: application/octet-stream");    이렇게 변경해보세요.

 

// Determine Content Type
    switch ($ext)
    {
      case "pdf": $ctype="application/pdf"; break;
      case "exe": $ctype="application/octet-stream"; break;
      case "zip": $ctype="application/zip"; break;
      case "doc": $ctype="application/msword"; break;
      case "xls": $ctype="application/vnd.ms-excel"; break;
      case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
      case "gif": $ctype="image/gif"; break;
      case "png": $ctype="image/png"; break;
      case "jpeg":
      case "jpg": $ctype="image/jpg"; break;
      default: $ctype="application/force-download";
    }
이부분은 지우거나 주석처리하세요.

주소복사
답변의 댓글
답변을 작성하시기 전에 로그인 해주세요.
전체 89,861 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

진행중 포인트경매

  1. 참여15 회 시작20.08.04 00:57 종료20.08.11 00:57

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

© SIRSOFT