2013-03-14 78 views
0

我在嘗試查看webroot文件夾以外的pdf文件時遇到困難。CodeIgniter - 嘗試查看上傳的PDF文件時出錯

這是視圖文件 - 我是從URL抓取文件ID,然後查詢數據庫來獲取所有從上傳存儲的文件信息。

 $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公司的777個權限目錄 - 我一直都在網上,並似乎有幾種方法來顯示PDF文件,其中沒有一個似乎對我的工作。任何幫助,將不勝感激。謝謝!

+0

聽起來像這個問題不是文件,而是瀏覽器渲染它。 http://file-repair.blogspot.ca/2012/01/how-to-solve-pdf-file-error-message.html – 2013-03-14 23:52:25

回答

0

解決:問題是我經過一個header_view頁面在控制器中的$this->load->view('file_viewer_view');部分之前。

PDF查看器試圖在file_viewer_view的header('Content-Type: application/pdf')代碼之前第一解析header_view和由此產生的誤差。

我刪除一切從控制器$this->load->view('file_viewer_view');之前和它的作品就像一個冠軍!

希望這可以爲我節省幾個小時,像我經歷過的那樣撞牆!