【问题标题】:CodeIgniter - error trying to view uploaded pdf filesCodeIgniter - 尝试查看上传的 pdf 文件时出错
【发布时间】:2013-03-15 22:49:19
【问题描述】:

我在尝试查看 webroot 文件夹之外的 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);

        }

问题是当我点击链接打开一个新标签并尝试显示文件时,我收到以下错误:

文件不以“%PDF-”开头。

该文件位于 webroot 之外的一个名为 uploads 的 777 权限目录中 - 我已经浏览过整个网络,似乎有几种方法可以显示 pdf 文件,但似乎都不适用于我。任何帮助,将不胜感激。谢谢!

【问题讨论】:

标签: php codeigniter


【解决方案1】:

已解决:问题是我在控制器中的 $this->load->view('file_viewer_view'); 部分之前传递了 header_view 页面。

PDF 查看器试图先解析 header_view,然后再解析 file_viewer_view 中的 header('Content-Type: application/pdf') 代码,从而产生错误。

我在$this->load->view('file_viewer_view'); 之前从控制器中删除了所有内容,它就像一个冠军!

希望这可以避免有人像我经历的那样用头撞墙几个小时!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 1970-01-01
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 2017-08-27
    相关资源
    最近更新 更多