MAC(맥)에서 올린 파일이 다운로드하면 파일명이 표시되지 않습니다.

MAC(맥)에서 올린 파일이 다운로드하면 파일명이 표시되지 않습니다.

QA

MAC(맥)에서 올린 파일이 다운로드하면 파일명이 표시되지 않습니다.

본문

첨부한 파일을 다운로드하면 이상한 문자만 가득한 download.php만 다운이 되어서

아래 글을 참고해서 bbs/download.php 파일을 고쳤습니다. 

 

참고 URL:

 

주석처리한 곳

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 {

    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();

 

그런데 문제가 또 생겼습니다..

제대로 다운로드는 되지만 mac에서 올린 파일명은 여전히 download.php 입니다.


 

변경 >>> 

header("Content-Disposition: attachment; filename=\"".$original."\";" );  


빨간색 부분을 위와 같이 변경해도 파일명이 바뀌지 않는데 

원인을 알 수 있을까요? 답답하네요...아시는 분이 있으시다면 답변 꼭 좀 부탁드리겠습니다!!!

 

이 질문에 댓글 쓰기 :

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

회원로그인

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