2015-10-07 31 views
-4

在PHP當我下載的pdf文件,我想要的PDF文件名與一個名字像這樣西蒙(2015年7月10日).PDF下載TCPDF文件名問題

謝謝

+0

必須在某處產生! –

+0

請參考:http://stackoverflow.com/questions/14978191/saving-file-generated-by-tcpdf –

+0

你問關於tcpdf ??那麼你可以直接改變'$ pdf-> Output('anyname .pdf','I');' – Prafulla

回答

0

TRy THis

ob_start();  
$file   = '';//pdf path here 
    downloadFile($file,'simon (07-10-2015).pdf','text/plain'); 
    function downloadFile($file, $name, $mime_type='') 
    { 
    if(!is_readable($file)) die('File not found or inaccessible!'); 
    $size = filesize($file); 
    $name = rawurldecode($name); 
    $known_mime_types=array(
     "pdf" => "application/pdf", 
     "txt" => "text/plain", 
     "html" => "text/html", 
     "htm" => "text/html", 
     "exe" => "application/octet-stream", 
     "zip" => "application/zip", 
     "doc" => "application/msword", 
     "xls" => "application/vnd.ms-excel", 
     "ppt" => "application/vnd.ms-powerpoint", 
     "gif" => "image/gif", 
     "png" => "image/png", 
     "jpeg"=> "image/jpg", 
     "jpg" => "image/jpg", 
     "php" => "text/plain" 
    ); 
    if($mime_type==''){ 
     $file_extension = strtolower(substr(strrchr($file,"."),1)); 
     if(array_key_exists($file_extension, $known_mime_types)){ 
      $mime_type=$known_mime_types[$file_extension]; 
     } else { 
      $mime_type="application/force-download"; 
     }; 
    }; 
    @ob_end_clean(); 
    if(ini_get('zlib.output_compression')) 
     ini_set('zlib.output_compression', 'Off'); 

    header('Content-Type: ' . $mime_type); 
    header('Content-Disposition: attachment; filename="'.$name.'"'); 
    header("Content-Transfer-Encoding: binary"); 
    header('Accept-Ranges: bytes'); 
    header("Cache-control: private"); 
    header('Pragma: private'); 
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 

    if(isset($_SERVER['HTTP_RANGE'])) 
    { 
     list($a, $range) = explode("=",$_SERVER['HTTP_RANGE'],2); 
     list($range) = explode(",",$range,2); 
     list($range, $range_end) = explode("-", $range); 
     $range=intval($range); 
     if(!$range_end) { 
      $range_end=$size-1; 
     } else { 
      $range_end=intval($range_end); 
     } 
     $new_length = $range_end-$range+1; 
     header("HTTP/1.1 206 Partial Content"); 
     header("Content-Length: $new_length"); 
     header("Content-Range: bytes $range-$range_end/$size"); 
    } else { 
     $new_length=$size; 
     header("Content-Length: ".$size); 
    } 
    $chunksize = 1*(1024*1024); //you may want to change this 
    $bytes_send = 0; 
    if ($file = fopen($file, 'r')) 
    { 
     if(isset($_SERVER['HTTP_RANGE'])) 
     fseek($file, $range); 

     while(!feof($file) && 
      (!connection_aborted()) && 
      ($bytes_send<$new_length) 
      ) 
     { 
      $buffer = fread($file, $chunksize); 
      print($buffer); 
      flush(); 
      $bytes_send += strlen($buffer); 
     } 
    fclose($file); 
    } else 
    die('Error - can not open file.'); 
    die(); 
    } 
+0

謝謝你的迴應。這有效,但下載後該文件無法讀取。 但我以另一種方式得到了解決方案,我不得不改變tcpdf庫中的小片段。 ($ dest [0]!='F'){ if {$ dest [0]!='F'){name = preg_replace('/ [\ s] + /','_',$ name); \t $ name = preg_replace('/ [^ a-zA-Z0-9 _ \ .-] /','',$ name); } 你只需評論上面的代碼。這將取決於你的名字。 謝謝任何​​方式。 – Simon

+0

檢查我的編輯代碼 –