2012-05-02 210 views
0

確定強制圖像下載,即使輸出緩衝,這裏是我的代碼:似乎無法在

$file='dir/xxx/'.$images[0].'.jpg'; 
header('Content-Description: File Transfer'); 
header('Content-Type: application/octet-stream'); 
header('Content-Disposition: attachment; filename="'.basename($file).'.jpg"'); 
header('Content-Transfer-Encoding: binary'); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate'); 
header('Pragma: public'); 
header('Content-Length: ' . filesize($file)); 
readfile($file); 

當我檢查我的頭,他們似乎是Content-Type:text/html而不是我的意圖類型。 它只是將圖像原始數據輸出到屏幕上。 請幫忙!

後來編輯: 我已經刪除每ob_ *控制功能,其結果是一樣的

+0

我不認爲你想緩衝這樣的標題... – prodigitalson

+0

@prodigitalson請帶一個有效的建議。 – Gabriel

+0

你確定頭文件沒有被髮送到應用程序的其他地方嗎? – prodigitalson

回答

0

ob_clean銷燬輸出緩衝區,清除標題。

而且你不需要那麼ob_*功能,您可以安全地刪除

+0

結果是一樣的。我已經編輯我的職務 – Gabriel

+0

刪除所有ob_ *功能 – dynamic

+0

做到這一點,同樣的結果 – Gabriel

0

似乎有不成爲一個理由來緩衝你的頭擺在首位,那麼你很可能將其刪除。

如果你不想,這是問題所在。在刷新之前清理緩衝區。嘗試刪除ob_clean()。此外,您可能不得不使用ob_flush()而不是flush()

+0

結果是一樣的,我編輯了我的文章 – Gabriel

+0

你試過完全刪除緩衝嗎? – Honoki

+0

是的,同樣的事情:) – Gabriel