精简微框架中的多部分/表单数据示例

I have been developing apis for android and ios app in slim framework. Recently i came across a problem where i need to upload videos or images using multipart/form-data.

Can any one provide me an example of it in slim micro framework?

Here is my simple example:

HTML Form

<form enctype="multipart/form-data" action="/uploadPhoto" method="POST">
    Select photo: <input name="photo" type="file" />
    <input type="submit" value="Upload" />
</form>

PHP:

$app->post('/uploadPhoto', function () use ($app) {

    $uploadDir = '/full/path/to/upload/dir/';
    $error = false;

    if (empty($_FILES)) {
        echo 'No files';
        $app->stop();
    }

    if (!empty($_FILES['photo']) && $_FILES['photo']['error'] !== 4) {
        if (!$_FILES['photo']['error']) {
            if (!move_uploaded_file($_FILES['photo']['tmp_name'], $uploadDir.$_FILES['photo']['name'])) {
                echo 'There is a error while processing uploaded file';
                $app->stop();
            }
        } else {
            echo 'Error while uploading file';
            $app->stop();
        }
    }

    echo 'Success!';
});