ウェブサイト: http://blog.sina.com.cn/s/blog_976934420101cpnz.html
早速、最初にコードを投稿しましょう
$filename = $_FILES['file'] [ 'name'];
$file = "../uploads/".$filename;
$file=iconv("UTF-8","GB2312//IGNORE", $file);
if (!move_uploaded_file ($_FILES['file']['tmp_name'],$file)){
echo "";
}
else{
$file=iconv("GB2312","UTF-8//IGNORE", $file) );
echo "<script>alert('アップロード成功、ファイルパスは "+.<span>$file.</span>+"!');</script>";
exit();
}
上記は、問題を解決するために使用したコードです。
プロジェクトがGB2312でエンコードされている場合、この問題は発生しません
$file=iconv("UTF-8","GB2312) //IGNORE", $ file); これは主にファイル パスのエンコーディングを変換するために使用されます。エンコーディングが変換されていない場合、ファイル パスまたはファイル名にスペースが含まれている場合や中国語の文字が含まれている場合、アップロードは失敗します。文字化けが表示されます。
必ずパスを追加してください。プロジェクトが UTF-8 であるため、GB2312 のパスとファイル名が文字化けして表示されます。
私のコード:
if ($upfile['error']==UPLOAD_ERR_OK){
// 拡張子 .txt .rar などを取得します。
// $extName=strto lower(end(explode('.' ,$upfile['name'])));
//サフィックスを含むファイルの実際の名前を取得します
$filename =$upfile['name'];
$filename=iconv("UTF-8"," GB2312//IGNORE",$filename);
// $filename=iconv("GB2312","UTF -8",$filename);
$dest="../doc/secure/"。 $filename;
// $dest=iconv("UTF-8","GB2312//IGNORE", $dest );
//doc ディレクトリに移動
//中国語の文字化けによりアップロードが失敗する可能性があります
if(!move_uploaded_file($upfile['tmp_name'],$dest)){
echo "";
}else{
} $filename=iconv("GB2312","UTF-8//IGNORE",$filename);
$path="doc/secure/" . $ FILENAME;
// フォームパラメータデポジットデータベースを取得します。 LE ]','$_SESSION[userID]')";
mysql_query($sql);
}
}
上記は、いくつかの側面を含めて、move_uploaded_file ファイルのアップロードに失敗する問題を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。