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

时间:2014-07-07 05:20:26

标签: php file-upload slug fat-free-framework

我的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获取它?谢谢。

2 个答案:

答案 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)

\ instance() - > receive函数返回上传的文件数组。你会在数组键中看到slugged的名字。查看http://fatfreeframework.com/web#receive

上的示例