文件名中带有国家字符的文件上传在Chrome中不再起作用。下面是重现该错误的代码示例。当上传文件名中带有国家字符(åäö)的文件时,$ _ FILES变量为空。我已经使用Apache模块dump_io记录了完整的请求,并且看起来没有多部分表单数据从Web浏览器发送到服务器。使用Firefox时,一切正常。它也可以工作到几个月前的Chrome。我猜想Google在Chrome中做了一些升级,引入了这个问题。还有其他人遇到同样的问题吗?
<?php
header("Content-Type: text/html; charset=ISO-8859-1");
$fileSize = 0;
if (array_key_exists("file_upload", $_FILES)) {
$fileSize = $_FILES["file_upload"]['size'];
echo "fileSize=$fileSize<br/><br/>";
}
?>
<html>
<head>
<title>Test</title>
<meta charset="ISO-8859-1">
</head>
<body>
<form action="test_upload.php" enctype="multipart/form-data" method="POST">
<input type="file" name="file_upload" size="45" />
<input type="submit" value="Upload"/>
</form>
</body>
</html>