如何让php在新标签页中打开pdf文件?

时间:2012-04-20 21:32:50

标签: php file codeigniter pdf file-upload

我不明白我一直在阅读的文档。谁能在这里解释如何做到这一点?

我有一个HTML链接转到函数showFile()。有两个获取,一个id,它是文件名,一个ext,即文件的扩展名。(只有扩展名为pdf,jpg和gif)我正在使用codeigniter framwework btw。

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

到目前为止的功能---------

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

}

2 个答案:

答案 0 :(得分:3)

HTML中的这类内容:

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

当然,href必须在PHP中echo

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

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

答案 1 :(得分:3)

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/>