我正在创建一个REST,用于更新用户配置文件数据。我已经创建了一个API &我希望使用它来更新所有类型的数据,如名称、电子邮件和配置文件图片。
如果我没有发送多个部分的请求(这意味着我只是在更新文本),API可以正常工作,但是如果我更新了图像,我就会发现一个问题--我无法更新配置文件图片。但是如果我使用POST方法,那么我也可以更新配置文件图片和数据。
这里是REST 的代码
$app->put('/updateUser', 'authenticate', function() use($app)
{
global $user_id;
$isFileUpdated=false;
$file_path = "../uploads/";
if (isset ( $_FILES ['files'] ))
{
$file_path = $file_path . basename( $_FILES['files']['name']);
if(move_uploaded_file($_FILES['files']['tmp_name'], $file_path))
{
$isFileUpdated=true;
}
}
$name = $app->request->put ( 'name' );
$email = $app->request->put ( 'email' );
$phone=$app->request->put( 'phone' );
$password = $app->request->put ( 'password' );
$address=$app->request->put ( 'address' );
$language=$app->request->put ( 'language' );
$profession=$app->request->put ( 'profession' );
$db = new DbHandler();
$response = array();
// updating task
$result = $db->updateUser($user_id, $name, $email,$isFileUpdated,$file_path,$phone,$password,$address,$language,$profession);
if ($result)
{
// task updated successfully
$response["error"] = false;
$response["message"] = "User updated successfully";
}
else
{
// task failed to update
$response["error"] = true;
$response["message"] = "User failed to update. Please try again!";
}
echoRespnse(200, $response);
});请建议一下该怎么做?
发布于 2016-05-23 08:36:47
如果你没这么做..。
对旧浏览器上的'PUT'方法的调用要求您首先自定义/重写头部以接受'PUT',或者更简单的方法是通过添加额外的_METHOD=PUT http://www.slimframework.com/docs/objects/request.html参数将'POST'重写为'PUT'
https://stackoverflow.com/questions/30859954
复制相似问题