Das liegt daran, dass sich die Zeichenkodierung von PHP von der von Windows unterscheidet. Die vereinfachte chinesische Version von Windows verwendet im Allgemeinen die gbk- oder gb2312-Kodierung für die Benennung von Dateinamen. Die meisten Werte von Nicht-ASCII-Stringvariablen in PHP verwenden die UTF8-Codierung (dieser Standardwert kann natürlich geändert werden ...). Die Variable $name muss in die GBK-Kodierung konvertiert werden, bevor sie benannt und im Windows-Dateisystem gespeichert werden kann. Mit der Funktion mb_convert_encoding können Sie die Kodierung einer Zeichenfolge konvertieren.
Gehen Sie davon aus, dass PHP utf8-codiert ist, und ändern Sie dann move_uploaded_file($tmp_name,'upload/'.$name); im Code in move_uploaded_file($tmp_name,'upload/'.mb_convert_encoding (( $name));
Das Obige stellt den von move_uploaded_file gemeldeten Fehler und die Umbenennungsfunktion der von yii hochgeladenen Dateien vor, einschließlich des relevanten Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die an PHP-Tutorials interessiert sind.