0
我有一個腳本,開始在PHP下載。當用戶點擊開始下載的鏈接時,它應該提示用戶是否要保存文件。它在Firefox中工作正常,但在Safari和Chrome中,下載會自動啓動,而不會提示用戶。PHP下載腳本,自動下載而不是提示,因爲它應該
這裏是我的代碼
$extension = fileexten($filename);
if(($filename!= false)&&($fakename!=false&& @fopen($filename,'r')==true)){
$mime = contenttype($extension);
set_time_limit(0);
header('Pragma: public');
header('Expires: 0');
header("Content-Type:".$mime);
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private', false);
header('Content-Disposition: attachment;filename='.$fakename.'.'.$extension);
header("Content-Transfer-Encoding: binary");
if (ob_get_length() > 0) {
ob_end_clean();
}
flush();
readfile($filename);
}
else{
$error = "<h3>We could not find this file</h3>";} // If the filename or fake filename could not be retrieved.
}
反正我可以確保瀏覽器會提示他們保存或下載,而不是它在其他瀏覽器自動啓動文件?
這是一個瀏覽器控制的行爲,你不能改變,從PHP。 – 2014-09-25 21:08:07
這是這些瀏覽器的標準行爲。如果我不得不處理提示下載,我會很煩惱。 – Quentin 2014-09-25 21:08:27
什麼是你發送的MIME類型?如果您在用戶的瀏覽器中使用無效或不可能配置的內容,他們會收到提示。但是,如果他們告訴瀏覽器自動保存(比如說)pdf文件,那麼你無法重寫這個文件,因爲它沒有發出一個謊言,並說「這不是你正在查找的PDF」 – 2014-09-25 21:10:32