我的php脚本必须处理非slug文件名上传,例如,当用户尝试上传文件“Имянарусском.jpg”时。有些方法无法正确处理,所以我使用:
$overwrite = true;
$slug = true;
\Web::instance()->receive(NULL,$overwrite,$slug);
所以,我在服务器上获得了“imja-na-russkom.jpg”文件。问题是我需要为DB捕获这个文件名,为此我尝试了这个:
$filename = \Web::instance()->Slug($_FILES['userfile']['name'];
返回“imja-na-russkom-jpg” - 不是文件系统中使用的名称(不是点,而是扩展名前的破折号)。
所以,我的问题是:有没有办法捕获名称,在Web :: receive()中使用,或者,如果没有,是否有解决方法通过F3获取它?谢谢。
答案 0 :(得分:5)
好的,有了ikkez的提示,我想出了:
$a = Web::instance()->receive(NULL,true,true);
$name = array_keys($a);
$name = pathinfo($name['0'], PATHINFO_BASENAME);
这里我们在服务器上传文件并将其名称保存到$ name变量中。您可以跳过最后一行并使用
$name = $name['0'];
如果您想保存上传文件的完整路径。
答案 1 :(得分:2)