CodeIgniter -试图查看上传的pdf文件时出错


CodeIgniter - error trying to view uploaded pdf files

我很难在webroot文件夹外查看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);
        }

问题是,当我点击链接打开一个新的选项卡,并试图显示文件,我得到以下错误:

文件不以'%PDF-'开头。

该文件位于一个777权限目录下,名为上载,就在webroot之外-我在网上到处都是,似乎有几种方法可以显示pdf文件,但似乎没有一种适合我。任何帮助都会很感激。谢谢!

解决:问题是我在$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');之前从控制器中删除了所有内容,它像冠军一样工作!

希望这能让别人少花几个小时像我一样把头撞在墙上!