【问题标题】:Previewing PDF files using FuelPHP使用 FuelPHP 预览 PDF 文件
【发布时间】:2014-06-07 00:34:45
【问题描述】:

我正在尝试使用 <object><embed> 标签显示在 FuelPHP 中上传的 PDF 文件。

注意:如果您转到该页面,/upload/image?image_id=1 会下载正确的 pdf。但是当它嵌入到我的浏览器中时,它是不可见的。我使用的是最新版本的 Chrome 版本 34.0.1847.116

另一个注意事项是,如果 pdf 位于 htdocs 文件夹中,则预览也可以正常显示。另外,我也使用这种下载方法来显示图像,与<img src="/upload/image?image_id=some_num"> 配合使用效果很好

这是我的休息控制器..

<?php
class Controller_Upload extends Controller_Rest
{

    public function after($response) {
        parent::after($response);       
        return $this->response(json_encode($this->data));
    }

    public function get_image()
    {
        $image_id = Input::post("image_id");
        $file_name = (Input::get('image_name') != null) ? Input::get('image_name') : Model_Db_Storage::get_image($this->userid, $image_id);

        if($file_name)
        {
            $this->response->set_header('Content-Type', 'application/pdf');
            File::download(APPPATH.'/tmp/'.$file_name);
        }
        else
        {
            $this->data['image'] = $file_name;
            $this->data['response'] = 'Error Receipt not Found';
        }
    }
}
?>

HTML:

<object data="/upload/image?image_id=1" type="application/pdf">
    <embed src="/upload/image?image_id=1" type="application/pdf" />
</object>

【问题讨论】:

    标签: php pdf fuelphp


    【解决方案1】:

    这似乎更像是一个 HTML 问题,而不是一个实际的 FuelPHP 问题,因为您说直接在浏览器中查看 PDF 时它可以工作。

    我认为你最好使用 iframe 标记。

    看到这个question and answer

    Mozilla's docs on iFrame

    简单的例子是:

    <iframe width="400" height="215" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="/upload/image?image_id=some_num"></iframe>
    

    【讨论】:

      【解决方案2】:

      这是我决定输出原始字节的解决方案。

      我将 HTMl 代码改为 iframe

      <iframe src="/upload/image?image_id=1"></iframe>
      

      然后我改变了输出文件的方式:

      $this->response->set_header('Content-Type', 'application/pdf');
      //File::download(APPPATH.'/tmp/'.$file_name);
      echo File::read(APPPATH.'/tmp/'.$file_name);
      return new Response();
      

      【讨论】:

        猜你喜欢
        • 2010-11-16
        • 1970-01-01
        • 2022-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多