ファイルのダウンロードを実装し、中国語のファイル名をサポートするための PHP のサンプル コード
リリース: 2016-07-25 08:55:53
-
-
/*---------------- - * $FileName はファイル名であり、渡す必要があります
- * $FilePath はファイルパス。オプションで、相対パスまたは絶対パスにすることができます
- * @パスは中国語ではなく、英語とデータのみで構成できます
- * @編集者: bbs.it-home.org
- ---- ----- ---------*/
-
- header("Content-type: text/html;charset=utf-8");
- if(strlen($FileName)<=3) {echo "ダウンロードに失敗しました : ダウンロードしたファイル情報が正しくありません";return;}
- $FileName=iconv("utf-8","gb2312",$FileName);//中国語の文字化けを防ぐためにファイル名の形式を変換します
- //開始パスを決定します
- if(!is_null($FilePath)&&strlen($FilePath)>1){
- if(substr($FilePath,0,1)=='/'){//パスを決定します。は絶対パスです
- $FilePath =$_SERVER['DOCUMENT_ROOT'].$FilePath;
- }
- if(substr($FilePath,-1)!="/"){//末尾が /
- $FilePath であるかどうかを確認します=$FilePath.'/' ;
- }
- if(is_numeric(strpos($FilePath,":")))){//絶対パスかどうかを確認します
- $FilePath=str_replace("/","",$ FilePath);
- }
- }elseif( strlen($FilePath)==1&&$FilePath!="/"){
- $FilePath=$FilePath."/";
- }else{
- $FilePath="";
- }
- if(!file_exists($FilePath. $FileName)){
- echo "ダウンロードに失敗しました: ダウンロードするファイルが見つかりませんでした"; return;
- }
- /*---------------
- ダウンロード関連のヘッダ情報を送信
- -- -----------=*/
- header("Content-type: application/octet-stream");
- header("Accept-Ranges: bytes") ;//バイトサイズに従って返す
- header("Accept-Length: $FileSize");//ファイルサイズを返す
- header("Content-Disposition:attachment; filename=".$FileName);//クライアントのポップ-up ダイアログ ボックスに、対応するファイル名が表示されます< /p>
/*---------------
- 関連のダウンロードを開始します
- ----------- --=*/
- $FileSize=filesize( $FilePath.$FileName);
- $File=fopen($FilePath.$FileName,"r");// ファイルを開きます
- $FileBuff=512;
- while($ FileSize>=0){
- $FileSize-=$ FileBuff;
- echo fread($File,$FileBuff);
- }
- fclose($File);
- }
- ?>
-
コピーコード
|
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31