私はスリムなphpフレームワークを初めて使用します。画像をアップロードし、ファイル名をPOST
経由でデータベースに入れたいのですが、誰かが親切にサンプルコードを教えてくれますか。
ルーターは次のとおりです。
$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']);
}
}
誰かがより良い答えを持っているなら、私のものを変えてください。
Slimの作成者は、Slimを介したファイルのアップロードを処理するライブラリを作成しました: https://github.com/brandonsavage/Upload