Ben tarayıcı PDF geçer sonra LaTeX çağıran bir php eklenti var. Benim Kullanıcılar bu hizmet için ödeme olacak, ben onlar yerine tekrar ve tekrar benim sunucu isabet daha PDF kaydetmek için seçenek verilir emin olmak istiyorum.
exec("cd tex && latex {$_SESSION['sen_id']}.tex && pdflatex {$_SESSION['sen_id']}.tex", $output);
$pdf = substr($file,0,-3).'pdf';
if (file_exists($pdf)) {
//header('Content-Description: File Transfer');
header('Content-Type: application/pdf');
//header('Content-Length: ' . filesize($pdf));
header('Content-Disposition: attachment;filename='.date('Ymd-His').'-'.basename($pdf));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: no-cache');
header('Pragma: no-cache');
ob_clean();
flush();
readfile($pdf);
exit;
} else {
echo '<h1>No PDF Produced</h1>';
echo nl2br(print_r($output,true));
}
Wireshark kullanarak, Content-Disposition başlığı da set değil veya müşteri bulmuyor fark etmiş.
HTTP/1.1 200 OK\r\n
Date: Tue, 22 Jun 2010 14:15:10 GMT\r\n
Server: Apache/2.0.55 (Ubuntu) mod_jk/1.2.14 mod_python/3.1.4 Python/2.4.3 PHP/5.1.2 mod_ssl/2.0.55 OpenSSL/0.9.8a mod_perl/2.0.2 Perl/v5.8.7\r\n
X-Powered-By: PHP/5.1.2\r\n
Set-Cookie: SESS0d6c65b0599f5b70f6bbc50cfc5b2f94=2b23ba1f74f5f1f641365e9fbb45870d; expires=Thu, 15 Jul 2010 17:48:30 GMT; path=/; domain=.<domain removed>\r\n
Content-Transfer-Encoding: binary\r\n
Expires: 0\r\n
Cache-Control: no-cache\r\n
Pragma: no-cache\r\n
Connection: close\r\n
Transfer-Encoding: chunked\r\n
Content-Type: application/pdf\r\n
\r\n
Şimdiye kadar, ben buldum ipuçları "her kelime kazanca dönüştürün" ve "tırnak dosya sarmak", "iki nokta üst üste sonra boşluk koymak", "octet-stream kullanmayın", "kullanım octet-buhar" deyin. Ben şanslı insanlar tarafından söndürüldü yanlış bir şey var sanırım.