php檔案下載的函數(支援多種格式)

來源:互聯網
上載者:User
本文介紹下,用php實現檔案下載的一個函數,可以支援多種格式檔案的下載。有需要的朋友參考下。

php檔案下載函數分享,代碼如下:

404 File not found!"); }    //Gather relevent info about file    $len = filesize($file);    $filename = basename($file);    $file_extension = strtolower(substr(strrchr($filename,"."),1));    //This will set the Content-Type to the appropriate setting for the file    switch( $file_extension ) {          case "pdf": $ctype="application/pdf"; break;      case "exe": $ctype="application/octet-stream"; break;      case "zip": $ctype="application/zip"; break;      case "doc": $ctype="application/msword"; break;      case "xls": $ctype="application/vnd.ms-excel"; break;      case "ppt": $ctype="application/vnd.ms-powerpoint"; break;      case "gif": $ctype="image/gif"; break;      case "png": $ctype="image/png"; break;      case "jpeg":      case "jpg": $ctype="image/jpg"; break;      case "mp3": $ctype="audio/mpeg"; break;      case "wav": $ctype="audio/x-wav"; break;      case "mpeg":      case "mpg":      case "mpe": $ctype="video/mpeg"; break;      case "mov": $ctype="video/quicktime"; break;      case "avi": $ctype="video/x-msvideo"; break;      //The following are for extensions that shouldn't be downloaded (sensitive stuff, like php files)      case "php":      case "htm":      case "html":      case "txt": die("Cannot be used for ". $file_extension ." files!"); break;      default: $ctype="application/force-download";    }    //Begin writing headers    header("Pragma: public");    header("Expires: 0");    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");    header("Cache-Control: public");     header("Content-Description: File Transfer");        //Use the switch-generated Content-Type    header("Content-Type: $ctype");    //Force the download    $header="Content-Disposition: attachment; filename=".$filename.";";    header($header );    header("Content-Transfer-Encoding: binary");    header("Content-Length: ".$len);    @readfile($file);    exit;}?>
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.