這是因為php字元編碼和windows不同的問題,簡體中文版的windows對檔案名稱的命名一般使用gbk或gb2312編碼。而php中的非ASCII字串變數的值大多使用utf8編碼(當然,這個預設值可以修改。)。需要將$name變數轉換為gbk編碼,才能在windows的檔案系統中命名並儲存下來。可以使用mb_convert_encoding函數來轉換字串的編碼。
假設php是utf8編碼,那麼將程式碼中move_uploaded_file($tmp_name,'upload/' .$name);改成move_uploaded_file($tmp_name,'upload/'.mb_convert_encoding($name)); 以上就介紹了yii上傳檔案move_uploaded_file和rename函數報錯,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。