Laravel 5 - 用德语字符移动上传的文件

时间:2015-02-11 11:53:47

标签: filenames laravel-5

有没有办法移动上传的文件并用德语字符命名?

我有一个表单,用户输入他的姓名和姓氏并添加一个文件。 文件上传正确,所有输入字段都保存在mysql数据库中。

public function store(Request $request)
{
    $file = $request->file('file');
    $file_name = $request->input('name_surname') . '_' . $request->input('month') . '.' . $file->getClientOriginalExtension();
    $request->file('file')->move('uploads', $file_name);
    $this->report->create(array('name_surname' => $request->input('name_surname'),
                                'file_name' => $file_name,
                                'ini_file_name' => $file->getClientOriginalName(),
                                'month' => $request->input('month'),
                                'sum' => $request->input('sum')));

    return redirect('/');
}

当我打开我的上传内容时文件夹,文件名如下所示:

Günter Baumgärtner_Februar 2015.pdf

DD($ FILE_NAME);显示了这个:

"Günter Baumgärtner_Februar 2015.pdf"

MySQL记录如下所示:

id | name_surname       | month        | sum | file_name                           | ini_file_name
39 | Günter Baumgärtner | Februar 2015 | 200 | Günter Baumgärtner_Februar 2015.pdf | report-11-02-2015_01-36.pdf

1 个答案:

答案 0 :(得分:0)

看起来您的系统编码存在问题。你的机器运行Linux吗?

如果是,请检查服务器LANG环境变量:在命令提示符下键入locale并查看以LANG=开头的行。如果是LANG=en_US.UTF-8(或以.UTF-8结尾的任何其他值),则重命名/创建具有德语字符的文件应该有效。在我的环境(LANG=pl_PL.UTF-8)中,我的Laravel应用程序创建了一个名为Günter_Baumgärtner.csv的文件 如果你的LANG设置为非UTF-8值,那么应该更改它,但是如何做到这一点取决于你的Linux发行版。