Maison >développement back-end >Problème PHP >Comment modifier le nom du fichier lors du téléchargement en php
Comment modifier le nom du fichier en PHP lors du téléchargement : définissez d'abord l'adresse de téléchargement ; puis contrôlez le nom de sortie dans le Controller, avec un code tel que "$file = './path/1.zip'. ..header( 'Pragma: public');readfile($file)...".
L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3
Modifiez le nom du fichier lorsque php télécharge le fichier
Adresse de téléchargement :
/download.php?controller=down_file&file=1.zip
Contrôlez ensuite le nom de sortie dans le contrôleur pour obtenir
$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;
[Apprentissage recommandé : "PHP Video Tutoriel" 】
==============
<?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); ?>
=========
Nous avons généralement implémentez le téléchargement en appelant l'URL pour télécharger, mais vous ne pouvez pas utiliser cette méthode lorsque vous rencontrez des fichiers que IE peut reconnaître lors de l'ouverture, comme le téléchargement d'une image, d'une page Web HTML, etc. À l'heure actuelle, une programmation est requise pour l'implémenter. Le code PHP peut résoudre le problème :
<? if( empty($_GET['FileName'])|| empty($_GET['FileDir'])|| empty($_GET['FileId'])){ echo'<script> alert("非法连接 !"); location.replace ("index.php") </script>'; exit(); } $file_name=$_GET['FileName']; $file_dir=$_GET['FileDir']; $FileId=$_GET['FileId']; $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(); } ?>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!