将 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
让我知道它是否有效
我从本教程 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
让我知道它是否有效