Pergunta

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.

Foi útil?

Solução

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.

Outras dicas

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top