ホームページ > バックエンド開発 > PHPの問題 > PHPでダウンロードする際にファイル名を変更する方法

PHPでダウンロードする際にファイル名を変更する方法

藏色散人
リリース: 2023-03-08 09:46:02
オリジナル
2313 人が閲覧しました

ダウンロード時にファイル名を変更する

php メソッド: 最初にダウンロード アドレスを設定し、次にコントローラーで出力名を制御します (「$file = './path/1.zip'...」などのコード)。 header( 'Pragma: public');readfile($file)..."。

PHPでダウンロードする際にファイル名を変更する方法

#この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 パソコン

php でファイル名が変更されますファイルをダウンロードするとき

ダウンロード アドレス:

/download.php?controller=down_file&file=1.zip
ログイン後にコピー

次に、コントローラーで出力名を制御して

$file = './路径/1.zip';
filename = '2.zip';
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header("Content-type:text/html;charset=utf-8");
header('Content-Disposition: attachment; filename='. $filename);
header('Content-Transfer-Encoding: binary');
header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
readfile($file);
exit;
ログイン後にコピー

を実現します [推奨学習: 「

PHP ビデオ」チュートリアル" ]

==============

<?php
$file_name="aa.rar";//需要下载的文件
$file_name=iconv("utf-8","gb2312","$file_name");
$fp=fopen($file_name,"r+");//下载文件必须先要将文件打开,写入内存
if(!file_exists($file_name)){//判断文件是否存在
    echo "文件不存在";         //如果不存在
    exit();                              //直接退出
}                                         //如果存在,继续执行下载
$file_size=filesize("aa.rar");//判断文件大小
//返回的文件
Header("Content-type: application/octet-stream");
//按照字节格式返回
Header("Accept-Ranges: bytes");
//返回文件大小
Header("Accept-Length: ".$file_size);
//弹出客户端对话框,对应的文件名
Header("Content-Disposition: attachment; filename=".$file_name);
//防止服务器瞬时压力增大,分段读取
$buffer=1024;
while(!feof($fp)){
    $file_data=fread($fp,$buffer);
    echo $file_data;
}
//关闭文件
fclose($fp);
?>
ログイン後にコピー

==========

私たち通常、ダウンロードは URL を呼び出してダウンロードすることで実装されますが、画像や HTML Web ページのダウンロードなど、IE が開くときに認識できるファイルに遭遇した場合にはこの方法は使用できません。この場合、実装にはプログラミングが必要です。 PHP コードで問題を解決できます:

<?
if( empty($_GET[&#39;FileName&#39;])|| empty($_GET[&#39;FileDir&#39;])|| empty($_GET[&#39;FileId&#39;])){
    echo&#39;<script> alert("非法连接 !"); location.replace ("index.php") </script>&#39;; exit();
}
$file_name=$_GET[&#39;FileName&#39;];
$file_dir=$_GET[&#39;FileDir&#39;];
$FileId=$_GET[&#39;FileId&#39;];
$file_dir = $file_dir."/";
if   (!file_exists($file_dir.$file_name))   {   //检查文件是否存在  
  echo   "文件找不到";  
  exit;    
  }   else   {  
$file = fopen($file_dir . $file_name,"r"); // 打开文件
// 输入文件标签
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $file_name));
Header("Content-Disposition: attachment; filename=" . $file_name);
// 输出文件内容
echo fread($file,filesize($file_dir . $file_name));
fclose($file);
exit();
}
?>
ログイン後にコピー

以上がPHPでダウンロードする際にファイル名を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート