【问题标题】:How to send form data in slim framework v3 in PUT routing如何在 PUT 路由中的 slim 框架 v3 中发送表单数据
【发布时间】:2017-03-24 07:05:33
【问题描述】:

我是 slim 框架中的新手,我正在使用 slim V3,我已经完成了 post route,它工作正常,但是当我尝试使用 put 方法更新记录时,它将适用于 Content-type = application/x-www-form-urlencoded 并成功更新我的记录

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

这是我的代码

$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!']);
    }

});

【问题讨论】:

  • Slim 不支持表单数据。
  • 我怎样才能将文件发送到 slim?
  • 事实上,当我尝试发送发布请求以插入记录时它可以工作

标签: rest slim form-data


【解决方案1】:

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

【讨论】:

猜你喜欢
  • 2016-06-28
  • 2017-10-13
  • 2016-09-05
  • 2015-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-09
  • 1970-01-01
相关资源
最近更新 更多