【发布时间】: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>
【问题讨论】: