<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php if($_FILES["file"]["error"]){ echo "<script>alert('没有选择文件!');location.href='http://127.0.0.1:88/seek_system/admin/help/wenjianceshi.php'</script>"; }else{ if(($_FILES["file"]["size"]<10240000)and($_FILES['file']['type']=='application/pdf')) { //防止文件名重复 $filename="./upfile/".date('YmdHis',time()+8*60*60).'-'.$_FILES["file"]["name"]; //转码 $filename=iconv("UTF-8","gb2312",$filename); if(file_exists($filename)){ echo "该文件已存在"; }else{ //保存文件 move_uploaded_file($_FILES["file"]["tmp_name"],$filename); echo "<script>alert('上传成功!');location.href='http://127.0.0.1:88/seek_system/admin/help/wenjianceshi.php'</script>"; } }else{ echo "<script>alert('只能上传PDF文件!');location.href='http://127.0.0.1:88/seek_system/admin/help/wenjianceshi.php'</script>"; } }
ファイルをアップロードするコードは上記のとおりです。中国語名を含むファイルをアップロードしたところ、トランスコード後は正常にアップロードでき、アップロードしたファイル名も中国語で正しく表示できましたが、クリックしてもファイルを開くことができないという問題が発生しました。ファイル名に「」を入力し、アドレスバーでファイル名を確認しました。中国語の部分が文字化けしています。トランスコードするとファイル名が中国語になり、ファイルは正常に開くことができます。どうすれば解決できますか?
ファイル名を保存するときにgbkエンコードを使用してから、ファイル名を読み取り、utf8に変換してみてください
りー