Search code examples
phpfile-uploadslugfat-free-framework

Catch uploaded file name in Fat Free Framework


My php script has to handle with non-slug filename uploads, when for example, a user tries to upload a file "Имя на русском.jpg". Some methods don't handle it correct, so i use:

$overwrite = true;
$slug = true;
\Web::instance()->receive(NULL,$overwrite,$slug);

So, I get the "imja-na-russkom.jpg" file on server. The problem is that I need to catch this filename for DB, for which I tried this:

$filename = \Web::instance()->Slug($_FILES['userfile']['name'];

Which returns "imja-na-russkom-jpg" - not the name used in filesystem (not dot, but dash before extension).

So, my question is: Is there a way to catch the name, used in Web::receive() or, if not, is there a workaround to get it by means of F3? Thank you.


Solution

  • Ok, with ikkez' tip i figured that out:

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

    Here we upload file on the server and save it's name into $name variable. You can skip the last line and use

    $name = $name['0'];
    

    if you want to save the full path to your uploaded file.