日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php開源 > php教程 > php實(shí)現(xiàn)中文文件名文件下載

php實(shí)現(xiàn)中文文件名文件下載

來源:程序員人生   發(fā)布時(shí)間:2014-04-02 10:45:08 閱讀次數(shù):2929次

有很多朋友下載文件時(shí)都是把中文名轉(zhuǎn)換在英文或全數(shù)字的然后再進(jìn)行下載,下面我來介紹直接利用中文文件名文件下載并且不出現(xiàn)亂碼的解決辦法,代碼如下:

  1. <?php 
  2. $filename = "中文 文件名.txt"
  3. header('Content-Type: application/octet-stream'); 
  4. header('Content-Disposition: attachment; filename=' . $filename); 
  5. print "Hello!"
  6. ?> 

把程序保存成UTF-8編碼再訪問,IE6下載的文件名就會(huì)亂碼,FF3下下載的文件名就只有“中文”兩個(gè)字,Opera 9下一切正常,輸出的header實(shí)際上是這樣子:

Content-Disposition: attachment; filename=中文 文件名.txt

其實(shí)按照RFC2231的定義,多語(yǔ)言編碼的Content-Disposition,應(yīng)該這么定義:

Content-Disposition: attachment; filename*="utf8''%E4%B8%AD%E6%96%87%20%E6%96%87%E4%BB%B6%E5%90%8D.txt"

即:filename后面的等號(hào)之前要加 * ,filename的值用單引號(hào)分成三段,分別是字符集(utf8)、語(yǔ)言(空)和urlencode過的文件名,最好加上雙引號(hào),否則文件名中空格后面的部分在Firefox中顯示不出來.

注意:urlencode的結(jié)果與php的urlencode函數(shù)結(jié)果不太相同,php的urlencode會(huì)把空格替換成+,而這里需要替換成%20

實(shí)例代碼如下:

  1. <?php 
  2.     $file = "/tmp/中文名.tar.gz"
  3.     $filename = basename($file); 
  4.     header("Content-type: application/octet-stream"); 
  5.     //處理中文文件名 
  6.     $ua = $_SERVER["HTTP_USER_AGENT"]; 
  7.     $encoded_filename = urlencode($filename); 
  8.     $encoded_filename = str_replace("+""%20"$encoded_filename); 
  9.     if (preg_match("/MSIE/"$ua)) { 
  10.      header('Content-Disposition: attachment; filename="' . $encoded_filename . '"'); 
  11.     } else if (preg_match("/Firefox/"$ua)) { 
  12.      header("Content-Disposition: attachment; filename*="utf8''" . $filename . '"'); 
  13.     } else { 
  14.      header('Content-Disposition: attachment; filename="' . $filename . '"'); 
  15.     } 
  16.     header('Content-Disposition: attachment; filename="' . $filename . '"'); 
  17.     header("Content-Length: "filesize($file)); 
  18.     readfile($file); 
  19. ?> 

這樣我們就完全解決了中文文名亂碼這個(gè)問題了。

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: av簧片| 国产一二区在线 | 欧美一级大片在线观看 | 成人国产精品 | 日本亚洲精品 | 三级福利视频 | 日韩一区二区电影 | 免费网站黄 | av影视大全| 91久久精品人人做人人爽综合 | 国产精品二区在线 | 亚洲视频在线观看 | 国产成人在线一区二区 | 91精品久久久久久久久久入口 | 性视频在线 | 一级成人黄色片 | 99在线视频精品 | 免费国产一区二区 | 免费成人高清在线视频 | 日韩精品久久久久久 | 欧美日韩国产大片 | 亚洲青青 | a色网站 | 丰满少妇一级毛片不卡免费 | 国产精品三级久久久久久电影 | 国产精品久久久久久久av大片 | 亚洲成人在线视频播放 | 性视频网 | 亚洲成人基地 | 97av在线视频免费播放 | 99精品国产热久久91蜜凸 | 国产成人精品一区二 | 国产精品久久久亚洲 | 国产精品极品 | 国产精品久久久久久一区二区三区 | 国产免费自拍 | 久久欧美肥婆一二区 | 亚洲精品久久久久久久久久久久久 | 综合久久亚洲 | 欧美一区二区三区四区在线观看 | 亚洲在线观看视频 |