您好,登錄后才能下訂單哦!
本文將為大家詳細(xì)介紹“php怎么實(shí)現(xiàn)下載時修改文件名的方法”,內(nèi)容步驟清晰詳細(xì),細(xì)節(jié)處理妥當(dāng),而小編每天都會更新不同的知識點(diǎn),希望這篇“php怎么實(shí)現(xiàn)下載時修改文件名的方法”能夠給你意想不到的收獲,請大家跟著小編的思路慢慢深入,具體內(nèi)容如下,一起去收獲新知識吧。
php是一個嵌套的縮寫名稱,指的是英文超級文本預(yù)處理語言(php:Hypertext Preprocessor)的縮寫,它的語法混合了C、Java、Perl以及php自創(chuàng)新的語法,主要用來做網(wǎng)站開發(fā),許多小型網(wǎng)站都用php開發(fā),因?yàn)閜hp是開源的,從而使得php經(jīng)久不衰。
php實(shí)現(xiàn)下載時修改文件名的方法:首先設(shè)置好下載地址;然后在Controller里控制輸出名,代碼如“$file = './路徑/1.zip'...header('Pragma: public');readfile($file)...”。
php下載文件時修改文件名
下載地址:
/download.php?controller=down_file&file=1.zip
然后在Controller里控制輸出名就可以實(shí)現(xiàn)
$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 $file_name="aa.rar";//需要下載的文件 $file_name=iconv("utf-8","gb2312","$file_name"); $fp=fopen($file_name,"r+");//下載文件必須先要將文件打開,寫入內(nèi)存 if(!file_exists($file_name)){//判斷文件是否存在 echo "文件不存在"; //如果不存在 exit(); //直接退出 } //如果存在,繼續(xù)執(zhí)行下載 $file_size=filesize("aa.rar");//判斷文件大小 //返回的文件 Header("Content-type: application/octet-stream"); //按照字節(jié)格式返回 Header("Accept-Ranges: bytes"); //返回文件大小 Header("Accept-Length: ".$file_size); //彈出客戶端對話框,對應(yīng)的文件名 Header("Content-Disposition: attachment; filename=".$file_name); //防止服務(wù)器瞬時壓力增大,分段讀取 $buffer=1024; while(!feof($fp)){ $file_data=fread($fp,$buffer); echo $file_data; } //關(guān)閉文件 fclose($fp); ?>
=========
我們一般實(shí)現(xiàn)下載都是調(diào)用url來下載,但是遇到ie能識別打開的文件就不能用這種方式了,比如下載一個圖片、html網(wǎng)頁等,這時就需要編程來實(shí)現(xiàn),以下php代碼可以解決:
<? 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"); // 打開文件 // 輸入文件標(biāo)簽 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); // 輸出文件內(nèi)容 echo fread($file,filesize($file_dir . $file_name)); fclose($file); exit(); } ?>
如果你能讀到這里,小編希望你對“php怎么實(shí)現(xiàn)下載時修改文件名的方法”這一關(guān)鍵問題有了從實(shí)踐層面最深刻的體會,具體使用情況還需要大家自己動手實(shí)踐使用過才能領(lǐng)會,如果想閱讀更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。