2016-11-10 3 views
0

スリムなフレームワークでは非常に新しく、スリムなV3を使用しています。ポストルートを行っていますが、うまく動作しますが、putメソッドでレコードを更新しようとすると動作します私はそれがフォームデータ要求にファイルを送信しませんPOSTMAN Chrome ExtensionでスリムなAPIにファイルを送信しようとするとContent-type = application/x-www-form-urlencodedでは成功PUTルーティングでフォームデータを送信する方法

enter image description here

と私の記録を更新します。ここで

enter image description here

あなたは、ヘッダー内のContent-Typeを削除するか無効にする必要が郵便配達員でファイルをアップロードするときに私のコードは

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

}); 
+0

フォームデータはSlimではサポートされていません。 – geggleto

+0

どうすればファイルをスリムに送ることができますか? –

+0

実際には、レコードを挿入するために投稿要求を送信しようとしたときに動作します。 –

答えて

1

です。

+0

はい、私はヘッダからcontent-typeを削除する必要がありますが、$ app-> post() '$ app - > put() ' –

+0

@HumairaNazは[この質問は、ファイルがput要求によって生成されないのはなぜか]を見ています(http://stackoverflow.com/questions/9464935/php-multipart-form-data-put-request ) – jmattheis

関連する問題