php檔案上傳與下載
php檔案上傳可以用move_uploaded_file()函數
但是文檔沒有介紹檔案下載的方法 我也找不到 move_downloaded_file()函數
我想下載用move_uploaded_file() 讓它從你上傳的目錄傳到你指定的下載目錄,這樣感覺怪怪的.
哪位大哥分享下php檔案下載的方法.
------解決思路----------------------
上傳可以move_uploaded_file, 是因為上傳的檔案已經在伺服器上
下載自然不能move_uploaded_file,因為檔案是在伺服器上的,你下載是要下載到用戶端的。。。
最簡單的方式下載
如果不想暴露檔案地址。
可以用:
header("xxxxxxxxxx");
readfile("檔案");
將檔案內容吐給瀏覽器去下載。
下載的資料,google, baidu 一下,還是蠻多的。。
------解決思路----------------------
$file = 'test.zip';
$filename = '中文.zip';
if(file_exists($file)){
$user_agent = $_SERVER['Http_User_agent'];
$encode_filename = rawurlencode($filename);
if(preg_match("/MSIE/", $user_agent)){
header('content-disposition:attachment; filename="'.$encode_filename.'"');
}else if(preg_match("/Firefox/", $user_agent)){
header("content-disposition:attachment; filename*=\"utf8''".$filename.'"');
}else{
header('content-disposition:attachment; filename="'.$filename.'"');
}
readfile($file);
}
?>
下載。
------解決思路----------------------
引用:
Quote: 引用:
$file = 'test.zip';
$filename = '中文.zip';
if(file_exists($file)){
$user_agent = $_SERVER['Http_User_agent'];
$encode_filename = rawurlencode($filename);
if(preg_match("/MSIE/", $user_agent)){
header('content-disposition:attachment; filename="'.$encode_filename.'"');
}else if(preg_match("/Firefox/", $user_agent)){
header("content-disposition:attachment; filename*=\"utf8''".$filename.'"');
}else{
header('content-disposition:attachment; filename="'.$filename.'"');
}
readfile($file);
}
?>
下載。
下載檔案的時候為什麼要判斷是那種瀏覽器(preg_match("/Firefox/", $user_agent)?
header('content-disposition:attachment; filename="'.$encode_filename.'"');
header('xxx')這句是有什麼用,我去掉的時候readfile($file) 就把檔案的內容顯示在瀏覽器,也沒有彈出下載框
設定檔案頭,當瀏覽器接收到頭時,會啟用檔案下載對話方塊