web-dev-qa-db-ja.com

スリムなphpフレームワーク画像アップロードデータベースを置く

私はスリムなphpフレームワークを初めて使用します。画像をアップロードし、ファイル名をPOST経由でデータベースに入れたいのですが、誰かが親切にサンプルコードを教えてくれますか。

9
Jasonsti

ルーターは次のとおりです。

$app->post('/', 'uploadFile');

これは以下の関数を指します:

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']);
    }
}

誰かがより良い答えを持っているなら、私のものを変えてください。

12
Muhaimin

Slimの作成者は、Slimを介したファイルのアップロードを処理するライブラリを作成しました: https://github.com/brandonsavage/Upload

6
flawyte