홈페이지에서 아이폰으로 hwp 다운로드 시 파일이 안 열립니다.

홈페이지에서 아이폰으로 hwp 다운로드 시 파일이 안 열립니다.

QA

홈페이지에서 아이폰으로 hwp 다운로드 시 파일이 안 열립니다.

본문

다른 핸드폰으로는 다운로드, 파일 열기가 되고 아이패드에서도 되는데 아이폰으로는 다운로드만 가능하고 열리지 않습니다.
한컴 뷰어을 사용하여도 안 열리고 네이버 웨일에서도 열리지 않습니다.
/bbs/download.php 파일 내용은 https://sir.kr/qa/140815 이곳에 보들이윤 님의 답변 내용입니다.


<?php
include_once('./_common.php');
 
// clean the output buffer
ob_end_clean();
 
$no = (int)$no;
 
@include_once($board_skin_path.'/download.head.skin.php');
 
// 쿠키에 저장된 ID값과 넘어온 ID값을 비교하여 같지 않을 경우 오류 발생
// 다른곳에서 링크 거는것을 방지하기 위한 코드
if (!get_session('ss_view_'.$bo_table.'_'.$wr_id))
    alert('잘못된 접근입니다.');
 
// 다운로드 차감일 때 비회원은 다운로드 불가
if($board['bo_download_point'] < 0 && $is_guest)
    alert('다운로드 권한이 없습니다.\\n회원이시라면 로그인 후 이용해 보십시오.', G5_BBS_URL.'/login.php?wr_id='.$wr_id.'&'.$qstr.'&url='.urlencode(G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id));
 
$sql = " select bf_source, bf_file from {$g5['board_file_table']} where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no = '$no' ";
$file = sql_fetch($sql);
if (!$file['bf_file'])
    alert_close('파일 정보가 존재하지 않습니다.');
 
// JavaScript 불가일 때
if($js != 'on' && $board['bo_download_point'] < 0) {
    $msg = $file['bf_source'].' 파일을 다운로드 하시면 포인트가 차감('.number_format($board['bo_download_point']).'점)됩니다.\\n포인트는 게시물당 한번만 차감되며 다음에 다시 다운로드 하셔도 중복하여 차감하지 않습니다.\\n그래도 다운로드 하시겠습니까?';
    $url1 = G5_BBS_URL.'/download.php?'.clean_query_string($_SERVER['QUERY_STRING']).'&js=on';
    $url2 = clean_xss_tags($_SERVER['HTTP_REFERER']);
 
    //$url1 = 확인link, $url2=취소link
    // 특정주소로 이동시키려면 $url3 이용
    confirm($msg, $url1, $url2);
}
 
if ($member['mb_level'] < $board['bo_download_level']) {
    $alert_msg = '다운로드 권한이 없습니다.';
    if ($member['mb_id'])
        alert($alert_msg);
    else
        alert($alert_msg.'\\n회원이시라면 로그인 후 이용해 보십시오.', G5_BBS_URL.'/login.php?wr_id='.$wr_id.'&'.$qstr.'&url='.urlencode(G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id));
}
 
$filepath = G5_DATA_PATH.'/file/'.$bo_table.'/'.$file['bf_file'];
$filepath = addslashes($filepath);
if (!is_file($filepath) || !file_exists($filepath))
    alert('파일이 존재하지 않습니다.');
 
// 사용자 코드 실행
@include_once($board_skin_path.'/download.skin.php');
 
// 이미 다운로드 받은 파일인지를 검사한 후 게시물당 한번만 포인트를 차감하도록 수정
$ss_name = 'ss_down_'.$bo_table.'_'.$wr_id;
if (!get_session($ss_name))
{
    // 자신의 글이라면 통과
    // 관리자인 경우 통과
    if (($write['mb_id'] && $write['mb_id'] == $member['mb_id']) || $is_admin)
        ;
    else if ($board['bo_download_level'] >= 1) // 회원이상 다운로드가 가능하다면
    {
        // 다운로드 포인트가 음수이고 회원의 포인트가 0 이거나 작다면
        if ($member['mb_point'] + $board['bo_download_point'] < 0)
            alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 다운로드('.number_format($board['bo_download_point']).')가 불가합니다.\\n\\n포인트를 적립하신 후 다시 다운로드 해 주십시오.');
 
        // 게시물당 한번만 차감하도록 수정
        insert_point($member['mb_id'], $board['bo_download_point'], "{$board['bo_subject']} $wr_id 파일 다운로드", $bo_table, $wr_id, "다운로드");
    }
 
    // 다운로드 카운트 증가
    $sql = " update {$g5['board_file_table']} set bf_download = bf_download + 1 where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no = '$no' ";
    sql_query($sql);
 
    set_session($ss_name, TRUE);
}
 
$g5['title'] = '다운로드 > '.conv_subject($write['wr_subject'], 255);
 
//$original = urlencode($file['bf_source']);
$original = iconv('utf-8', 'euc-kr', $file['bf_source']); // SIR 잉끼님 제안코드
 
@include_once($board_skin_path.'/download.tail.skin.php');
 
 // 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=\"".$original."\";" ); 
    header("Content-Transfer-Encoding: binary"); 
    header("Content-Length: ".$fsize); 
    ob_clean(); 
    flush(); 
 
$fp = fopen($filepath, 'rb');
 
// 4.00 대체
// 서버부하를 줄이려면 print 나 echo 또는 while 문을 이용한 방법보다는 이방법이...
//if (!fpassthru($fp)) {
//    fclose($fp);
//}
 
$download_rate = 10;
 
while(!feof($fp)) {
    //echo fread($fp, 100*1024);
    /*
    echo fread($fp, 100*1024);
    flush();
    */
 
    print fread($fp, round($download_rate * 1024));
    flush();
    usleep(1000);
}
fclose ($fp);
flush();
?>

위의 소스을 이용하고 있습니다.
오류 문구는 파일이 손상되었다는 문구가 나옵니다.
어느 부분이 문제가 되고 있는지 감이 안 잡혀 Q&A 남기게 되었습니다.

이 질문에 댓글 쓰기 :

답변 1

아이폰에서 hwp 파일을 볼 수가 있는 상태인가요? (앱 설치)

네 다른 홈페이지, 메세지 등등에서 hwp을 다운로드해서 볼 때는 아무 이상 없이 확인 가능합니다.
hwp뷰어(폴라리스 오피스, 한컴오피스)와 네이버 웨일에서 확인하여 사용하였습니다.
근데 특정 홈페이지에서 다운로드한 hwp 파일은 다운로드는 되나 확인이 불가 합니다.
특정 홈페이지 주소 남깁니다.
http://www.chonansenior.org/ 이곳의 공지사항에 있는 hwp 파일을 다운로드하면 문의한 문제가 발생됩니다.

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

회원로그인

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