我有一个shell帐户,我在那里创建了一个文件上传器。它有两个文件。的 upload.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Send</title>
</head>
<body>
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input name="thefile" type="file" /><br>
<input type="submit" value="Send" />
</form>
</body>
</html>
和 upload.php
<?php
header('Content-Type: text/html; charset=utf-8');
$thefile_tmp = $_FILES['thefile']['tmp_name'];
$thefile_name = $_FILES['thefile']['name'];
if(is_uploaded_file($thefile_tmp)) {
move_uploaded_file($thefile_tmp, "files/$thefile_name");
}
?>
一切正常,但我希望能够在我的电脑上使用上传器(Windows 7)。所以我按照这个tutorial安装了Apache24和php7。然而,我注意到,当我上传带有光泽字符的文件(我需要它们)时,它会将它们更改为一些奇怪的符号。我找到了一个解决方案here。即我将 upload.php 更改为
<?php
header('Content-Type: text/html; charset=utf-8');
$thefile_tmp = $_FILES['thefile']['tmp_name'];
$thefilename = $_FILES['thefile']['name'];
$thefile_name = iconv("utf-8", "ISO-8859-2", $thefilename);
if(is_uploaded_file($thefile_tmp)) {
move_uploaded_file($thefile_tmp, "files/$thefile_name");
}
?>
我的compluter一切正常。但是,当我在我的shell帐户上添加 upload.php 时,它会将波兰字符更改为奇怪的符号。
我推断出这种不匹配是由于服务器的php配置造成的。
所以我想更改计算机上的配置,以便第一个版本的 upload.php 能够正常工作。
我在我的shell帐户中查看了 phpinfo(),并尝试在我的计算机 phpinfo()上设置类似的设置。
我尝试更改核心中的 default_charset ,但它没有帮助。
我还尝试更改 iconv.input_encoding,iconv.internal_encoding,和 iconv.output_encoding 。这些都没有帮助。
我失去了很多选择。
版本信息
我的shell帐户:
我的电脑: