Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

slim php framework image upload put database

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.

like image 360
Jasonsti Avatar asked Jul 29 '14 13:07

Jasonsti


2 Answers

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.

like image 193
Muhaimin Avatar answered Oct 03 '22 16:10

Muhaimin


The creator of Slim has made a library to handle file uploading through Slim: https://github.com/brandonsavage/Upload

like image 42
flawyte Avatar answered Oct 03 '22 16:10

flawyte