symfony 4无法上传图片FOSRestBundle

时间:2019-07-19 19:25:45

标签: php curl postman symfony4 fosrestbundle

我是symfony4的新手,并且我遵循youtube tutorial,使用FOSRestBundle创建待办事项列表应用程序。

我遇到的问题是我无法使用PATCH方法将图像上传到服务器。

这是控制器的功能:

use FOS\RestBundle\Request\ParamFetcher;
/**
 * @Rest\FileParam(name="image", description="The background of the list", nullable=false, image=true)
 * @param ParamFetcher $paramFetcher
 * @param int $id
 * @return int
 */

public function backgroundListsAction(ParamFetcher $paramFetcher, int $id)
{
    var_dump($paramFetcher->get('image'));

    return count($_FILES);
}

这是bin/console debug:router日志:

 ------------------ -------- -------- ------ ---------------------------- 
  Name               Method   Scheme   Host   Path                        
 ------------------ -------- -------- ------ ---------------------------- 
  background_lists   PATCH    ANY      ANY    /api/lists/{id}/background  
  get_lists          GET      ANY      ANY    /api/lists                  
  get_list           GET      ANY      ANY    /api/lists/{id}             
  post_lists         POST     ANY      ANY    /api/lists                  
  get_lists_tasks    GET      ANY      ANY    /api/lists/{id}/tasks       
  put_lists          PUT      ANY      ANY    /api/lists                  
 ------------------ -------- -------- ------ ---------------------------- 

我尝试了几种选择:

1)正如教程的作者使用curl进行的那样,对我不起作用:

curl -X POST -F image=@/home/jake/Pobrane/matrixbg.jpeg -F method=PATCH http://localhost:8000/api/lists/1/background

我收到一个错误:

{"code":405,"message":"No route found for \"POST \/api\/lists\/1\/background\": Method Not Allowed (Allow: PATCH)"}

2)我也尝试过这种卷曲方式:

curl -X PATCH -F image=@/home/jake/Pobrane/matrixbg.jpeg  http://localhost:8000/api/lists/1/background

我遇到的错误是:

{"code":400,"message":"Parameter \"image\" of value \"NULL\" violated a constraint \"This value should not be null.\""}

3)所以我最后尝试的是使用邮递员,最终结果与第二种情况相同

enter image description here

0 个答案:

没有答案