tp5.1 上傳圖片保存中文名

要想保存爲中文文件名,首先,我們要了解一下操作系統的編碼:當前我們用的windows系統簡體中文版,編碼爲gb2312;而linux系統用的編碼爲utf-8。回顯給瀏覽器時要統一用utf-8編碼,就這麼簡單。

1、修改上傳文件:

$imgName = "加油";

$info = $file->validate(['size'=>10240000])->move( '../public/signImgs/',$imgName);

2、修改文件:thinkphp/library/think/File.php。請添加以下紅色文字。

找到setSaveName方法:將中文文件名轉爲utf-8輸出給瀏覽器,大約在127行,加入

        if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
            $saveName = iconv('gbk', 'utf-8',$saveName);
        }

        $this->saveName = $saveName;

 

在364行加入:

        $saveName = $this->buildSaveName($savename);
        if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
                        $saveName = iconv('utf-8','gbk//IGNORE', $saveName);
        }
 

然後再試一下,看看是不是可以上傳了呢

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章