【问题标题】:How do I get php to open a pdf file in a new tab?如何让 php 在新选项卡中打开 pdf 文件?
【发布时间】:2012-05-02 11:43:07
【问题描述】:

我不明白我一直在阅读的文档。任何人都可以在这里解释如何做到这一点?

我有一个指向函数 showFile() 的 HTML 链接。有两个get,一个id,即文件名,一个ext,即文件的扩展名。(仅扩展名是pdf、jpg和gif)我正在使用codeigniter framwework btw。

我阅读了有关标题的内容,但是当我尝试它时,它只是下载了文件。任何帮助将不胜感激。

目前的功能------

 public function showFile () {
    $fileId = $this->input->get('id');
    $fileExt = $this->input->get('ext');

}

【问题讨论】:

  • 您的浏览器可能没有安装 PDF 阅读器,因此请下载。如果它作为 PDF 附件下载并且没有吐出二进制呕吐物,那么您的代码可能正在运行。

标签: php file codeigniter pdf file-upload


【解决方案1】:

在 HTML 中是这样的:

<a href="downloadfile.php?filesrc=blah.pdf" target=_new>
    Click here to download blah.pdf</a>

当然,在 PHP 中,href 必须是 echoed。

<a href="downloadfile.php?filesrc=<?php echo $filepath ?>" target=_new> ... </a>

哦,downloadfile.php 只会有一个header('...'); 重定向到该文件。

【讨论】:

  • 我不想下载它。我只想在新的浏览器窗口中打开。
  • 您就是这样做的...浏览器会询问用户是否要查看或下载。
【解决方案2】:
class Files extends CI_Controller{

    public function show_file($id, $ext){
       $file_location = '';
       switch($ext){
           case 'pdf':
             $file_location = 'location-to_pdf_files'; // store as constant maybe inside index.php - PDF = 'uploads/pdf/';

             //must have PDF viewer installed in browser !
          $this->output
           ->set_content_type('application/pdf')
           ->set_output(file_get_contents($file_location . '/' . $id . '.pdf'));

           break;
           //jpg gif etc here...
       }

    }
}

-

$route['view/(:any)/(:any)'] = 'files/show_file/$1/$2';

-

<a href="<?php echo site_url('view/picture/pdf');?>" rel="nofollow" target="_blank">Some_file<a/>

【讨论】:

  • 这看起来应该可以。如果文件下载正常,可能是您的浏览器。尝试使用多个浏览器。如果您可以在其他网站的选项卡中查看 pdf,但它在您的网站上不起作用,请反馈。
  • @AndyGroff 是的,安迪应该可以正常工作。 + 用户可以选择打印或下载 pdf,就像你说的,虽然它取决于浏览器
猜你喜欢
  • 1970-01-01
  • 2019-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-09
  • 2018-11-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多