php檔案上傳與下載解決辦法

來源:互聯網
上載者:User
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) 就把檔案的內容顯示在瀏覽器,也沒有彈出下載框

設定檔案頭,當瀏覽器接收到頭時,會啟用檔案下載對話方塊
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.