我正在使用Laravel和Dropzone.js。一切都很好,直到我上传带有西里尔文名称的文件。目录中的文件名称如下所示 - Приети РїРѕ специалности_окончателно-РЅРѕРІ_0
这就是我猜的编码。在php.ini
我设置default_charset="UTF-8"
internal_encoding = UTF-8
input_encoding = UTF-8
但问题仍然没有解决。它可能是什么?
答案 0 :(得分:0)
看起来你需要http://php.net/manual/en/book.iconv.php 如果你有,你可以尝试:
$fileName = iconv("cp1251", "utf-8", $_FILES["upload"]["name"]);
// or
// $fileName = iconv("ISO-8859-1", "utf-8", $_FILES["upload"]["name"]);
$baseDir = '/some/dir/';
move_uploaded_file(
$_FILES["upload"]["tmp_name"],
$baseDir.$fileName
);
答案 1 :(得分:0)
我可以确认以下内容正在工作:
header(“ Content-Type:text / html; charset = utf-8”);
if ( 0 < $_FILES['file']['error'] ) {
echo 'Error: ' . $_FILES['file']['error'] . '<br>';
echo 'Error';
}
else {
$baseDir = 'uploads/';
$fn = iconv("utf-8", "cp1251", $_FILES["file"]["name"]);
move_uploaded_file($_FILES['file']['tmp_name'], $baseDir.$fn);
echo 'Success';
}