如何在PUT路由中以slim framework v3发送表单数据

时间:2016-11-10 09:50:18

标签: rest slim form-data

我是苗条框架中的新手,我使用的是苗条V3,我已经完成了后期路线并且工作正常但是当我尝试使用put方法更新记录时它将与Content-type = application/x-www-form-urlencoded一起使用并更新我的记录并成功

enter image description here

当我尝试使用POSTMAN Chrome Extension将文件发送到slim api时,它不会发送带有表单数据请求的文件。

enter image description here

这是我的代码

$app->put('/message/{message_id}', function ($request, $response, $args)
{
    $imagePath = '';

    $data = $request->getParsedBody();

    $files = $request->getUploadedFiles();

    $file = $files['file'];
    if ($file->getError() == UPLOAD_ERR_OK ) {
        $filename = $file->getClientFilename();
        $file->moveTo('assets/images/'.$filename);
        $imagePath = 'assets/images/'.$filename;
    }

    $message = Message::find($args['message_id']);
    $message->body = $data['message'];
    $message->user_id = $data['user_id'];
    $message->image_url = $imagePath;
    $message->save();

    if ($message->id) {
        return $response->withStatus(200)->withJson([
                'message_id' => $message->id,
                'message_uri' => '/message/'.$message->id,
            ]);
    }else{
        return $response->withStatus(400)->withJson(['message'=>'something went wrong!']);
    }

});

1 个答案:

答案 0 :(得分:1)

如果您想使用邮递员上传文件,则需要删除或禁用标题内的Content-Type