将 php 原生转换为 slim 框架风格

convert php native to slim framework style

我从本教程 http://www.andevindo.com/upload-file-volley

获得的 php 中有此功能
<?php

// array untuk json
$response = array();

if (isset($_FILES['image'])) {
    if(isset($_POST['directory'])){
        $directory = $_POST['directory'];
        $full_directory_path = '../' . $directory;

        //Pengecekan folder, sudah tersedia atau belum
        if(!is_dir($full_directory_path)){

            //Pembuatan folder baru
            mkdir($full_directory_path, 0777, true);
        }
        //Menentukan tempat file akan disimpan
        $target_path = $full_directory_path . '/' . basename($_FILES['image']['name']);
        if (!move_uploaded_file($_FILES['image']['tmp_name'], $target_path)) {

            //File gagal dipindahkan ke server, biasanya karena folder yang dituju tidak tersedia
            $response['kode'] = 1;
            $response['pesan'] = "File tidak dapat dipindahkan ke server";
            echo json_encode($response);
        }else{
            // File berhasil diupload
            $response['kode'] = 2;
            $response['pesan'] = "File berhasil diupload";
            $response['gili'] = $full_directory_path;

            echo json_encode($response);
        }
    }else{

    }
} else {

    //Jika file tidak terkirim dari android
    $response['kode'] = 0;
    $response['pesan'] = 'File tidak terkirim ke server';
    echo json_encode($response);
}
?>

实际上我想将它转换为 slim 框架风格,这样它就会有 api 风格。我已经试过了

$app->post('/gambar', function() use($app) {
            // check for required params

            $response = array();

            if (isset($_FILES['image'])) {
                if(isset($_POST['directory'])){
                    $directory = $_POST['directory'];
                    $full_directory_path = '../' . $directory;

                    //Pengecekan folder, sudah tersedia atau belum
                    if(!is_dir($full_directory_path)){

                        //Pembuatan folder baru
                        mkdir($full_directory_path, 0777, true);
                    }
                    //Menentukan tempat file akan disimpan
                    $target_path = $full_directory_path . '/' . basename($_FILES['image']['name']);
                    if (!move_uploaded_file($_FILES['image']['tmp_name'], $target_path)) {

                        //File gagal dipindahkan ke server, biasanya karena folder yang dituju tidak tersedia
                        $response['kode'] = 1;
                        $response['pesan'] = "File tidak dapat dipindahkan ke server";
                        echo json_encode($response);
                    }else{
                        // File berhasil diupload
                        $response['kode'] = 2;
                        $response['gili'] = $target_path;
                        $response['pesan'] = "File berhasil diupload";
                        echo json_encode($response);
                    }
                }else{

                }
            } else {

                //Jika file tidak terkirim dari android
                $response['kode'] = 0;
                $response['pesan'] = 'File tidak terkirim ke server';
                echo json_encode($response);
            }});

但它给我错误。任何帮助我将不胜感激

实际上这只是一个愚蠢的错误,你不能在 slim 中只使用 $_POST,你可以尝试改变这个 $directory = $_POST['directory']; 进入这个 $directory = $app->request->post('directory'); 请阅读如何在此处为 slim v2 http://docs.slimframework.com/ 处理 slim 让我知道它是否有效