2012-04-20 3 views
0

내가 읽은 문서를 이해하지 못합니다. 아무도 여기 어떻게이 일을 설명 할 수 있습니까?어떻게하면 새 탭에서 PHP 파일을 열 수 있습니까?

나는 showFile() 함수로가는 HTML 링크가있다. 여기에는 파일 이름 인 id와 파일의 확장자 인 ext가 있습니다. 확장자는 pdf, jpg 및 gif입니다. codeigniter framwework btw를 사용하고 있습니다.

헤더에 관한 내용을 읽었지만 파일을 다운로드하려고 시도했습니다. 어떤 도움을 주시면 감사하겠습니다.

기능까지 --------- HTML이 같은

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

} 
+2

를 PDF 리더가 설치되지 않을 수 있습니다 브라우저, 따라서 다운로드합니다. PDF 첨부 파일로 다운로드하고 바이너리 구토물을 내뱉지 않으면 코드가 제대로 작동하고있는 것입니다. –

답변

2

뭔가 : 물론 HREF가있다

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

는 PHP에서 echo 에드합니다.

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

아, 그리고 downloadfile.php 단순히 header('...'); 파일로 리디렉션해야합니다.

+0

나는 다운로드를 원하지 않는다. 난 그냥 새 브라우저 창에서 열고 싶어. –

+0

당신이 어떻게하는지 ... 브라우저는 사용자에게 그것을 보거나 다운로드할지 묻습니다. – Ozzy

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

정상적으로 작동하는 것 같습니다. 파일이 정상적으로 다운로드되는 경우 브라우저가 될 수 있습니다. 여러 브라우저에서 사용해보십시오. 당신이 다른 사이트의 탭에서 pdf를 볼 수 있고 귀하의 보고서에서 작동하지 않는 경우 다시보고하십시오. –

+0

@AndyGroff 예, 괜찮아요. + 사용자는 브라우저에 따라 다르지만 PDF로 인쇄하거나 다운로드 할 수 있습니다. – Philip

관련 문제