I am new to slim php framework, I want to upload an image and put the file name in the database via POST, can some one kindly give me some example code.
Here's the router:
$app->post('/', 'uploadFile');
this will point to the function below:
function uploadFile () {
    if (!isset($_FILES['uploads'])) {
        echo "No files uploaded!!";
        return;
    }
    $imgs = array();
    $files = $_FILES['uploads'];
    $cnt = count($files['name']);
    for($i = 0 ; $i < $cnt ; $i++) {
        if ($files['error'][$i] === 0) {
            $name = uniqid('img-'.date('Ymd').'-');
            if (move_uploaded_file($files['tmp_name'][$i], 'uploads/' . $name) === true) {
                $imgs[] = array('url' => '/uploads/' . $name, 'name' => $files['name'][$i]);
            }
        }
    }
    $imageCount = count($imgs);
    if ($imageCount == 0) {
       echo 'No files uploaded!!  <p><a href="/">Try again</a>';
       return;
    }
    $plural = ($imageCount == 1) ? '' : 's';
    foreach($imgs as $img) {
        printf('%s <img src="%s" width="50" height="50" /><br/>', $img['name'], $img['url']);
    }
}
If anyone have better answer, please be welcome to alter mine.
The creator of Slim has made a library to handle file uploading through Slim: https://github.com/brandonsavage/Upload
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With