2013-03-14 1 views
0

webroot 폴더 외부에서 pdf 파일을 보려고하는데 문제가 있습니다.CodeIgniter - 업로드 된 PDF 파일을 보려고하는 중 오류가 발생했습니다.

이것은보기 파일입니다. URL에서 파일 ID를 가져온 다음 업로드에서 저장 한 모든 파일 정보를 가져 오기 위해 db를 쿼리합니다. 그런 다음

 $fid = $_GET['fid']; 
$query = $this->db->query("SELECT * FROM files WHERE FID = $fid"); 
    $fileinfo = $query->result(); 
    foreach ($fileinfo as $row) 
    { 


    $fname = $row->file_name; 
    $ftype = $row->file_type; 
    $fpath = $row->file_path; 
    $full_path = $row->full_path; 
    $raw_name = $row->raw_name; 
    $client_name = $row->client_name; 
    $file_ext = $row->file_ext; 
    $file_size = $row->file_size; 
    $is_image = $row->is_image; 
    $width = $row->image_width; 
    $height = $row->image_height; 
    $img_type = $row->image_type; 
    $img_size = $row->image_size_str; 
    $orig_name = $row->orig_name; 
    $created = $row->created; 

    } 

그 정보를 복용하고 사용 File_viewer_model에 전달하고있어 다음

$this->load->model('File_viewer_model'); 

    $this->File_viewer_model->getFileInfo($fname,$ftype); 

다음과 같이 데이터를 수신 모델의 기능은 다음과 같습니다

function getFileInfo($fname,$ftype){ 


    $path = '/home/sitename/uploads/' . $fname; 


header('Content-Type: ' . $ftype); 
header('Content-Length: ' . filesize($path)); 

readfile($path); 

     } 

문제는 링크를 클릭하여 새 탭을 열고 파일을 표시하려고 할 때 다음 오류가 발생합니다.

File does not begin with '%PDF-'.

파일이 Webroot 바로 외부에있는 uploads라는 777 권한 디렉토리에 있습니다. 웹 전체에서 사용해 왔으며 pdf 파일을 표시하는 데 여러 가지 방법이있는 것 같습니다. 그 중 어떤 것도 저에게 효과가없는 것 같습니다. . 어떤 도움을 주시면 감사하겠습니다. 감사!

+0

문제는 브라우저에서 파일을 렌더링하는 것이 아니라 브라우저에서 렌더링하는 것과 같습니다. http://file-repair.blogspot.ca/2012/01/how-to-solve-pdf-file-error-message.html –

답변

0

해결 : $this->load->view('file_viewer_view'); 섹션 전에 컨트롤러에서 header_view 페이지를 전달하는 것이 문제였습니다.

PDF 뷰어가 file_viewer_view의 header('Content-Type: application/pdf') 코드 앞에 header_view를 먼저 구문 분석하려고 시도하여 오류가 발생했습니다.

$this->load->view('file_viewer_view'); 전에 컨트롤러에서 모든 것을 제거 했으므로 챔피언처럼 작동합니다!

이 기능을 사용하면 경험 한 것처럼 누군가 벽을 두드리는 데 몇 시간을 절약 할 수 있습니다.

관련 문제