在Fat Free Framework中捕获上传的文件名

fov*_*zar 2 php file-upload slug fat-free-framework

我的php脚本必须处理非slug文件名上传,例如,当用户尝试上传文件"Имянарусском.jpg"时.有些方法无法正确处理,所以我使用:

$overwrite = true;
$slug = true;
\Web::instance()->receive(NULL,$overwrite,$slug);
Run Code Online (Sandbox Code Playgroud)

所以,我在服务器上获得了"imja-na-russkom.jpg"文件.问题是我需要为DB捕获这个文件名,我试过这个:

$filename = \Web::instance()->Slug($_FILES['userfile']['name'];
Run Code Online (Sandbox Code Playgroud)

返回"imja-na-russkom-jpg" - 不是文件系统中使用的名称(不是点,而是扩展前的破折号).

所以,我的问题是:有没有办法捕获名称,在Web :: receive()中使用,或者,如果没有,是否有解决方法通过F3获取它?谢谢.

fov*_*zar 5

好吧,有了ikkez的提示,我想出来了:

$a = Web::instance()->receive(NULL,true,true);
$name = array_keys($a);
$name = pathinfo($name['0'], PATHINFO_BASENAME);
Run Code Online (Sandbox Code Playgroud)

在这里,我们在服务器上传文件并将其名称保存到$ name变量中.您可以跳过最后一行并使用

$name = $name['0'];
Run Code Online (Sandbox Code Playgroud)

如果要保存上传文件的完整路径.