有没有办法移动上传的文件并用德语字符命名?
我有一个表单,用户输入他的姓名和姓氏并添加一个文件。 文件上传正确,所有输入字段都保存在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
答案 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发行版。