我正在制作移动应用,我需要通过我的API从相机上传照片。但是当学说尝试INSERT INTO
时,他并不高兴,因为我的name
字段是null
。因此,我的实体生成的名称丢失了。
我不明白代码块在哪里。我的网络应用程序使用了相同的实体照片,一切正常。
我的Api控制器:
<?php
/**
* @throws AccessDeniedException
* @return array
* @FOSRest\View()
*/
public function apiUploadAction()
{
$photo = new Photo;
$photo->setUser($this->getUser());
$photo->setFile = new UploadedFile(
$_FILES["file"]["tmp_name"],
$_FILES["file"]["name"],
$_FILES["file"]["type"],
$_FILES["file"]["size"],
$_FILES["file"]["error"],
$test = false
);
$em = $this->getDoctrine()->getManager();
$em->persist($photo);
$em->flush();
$apiResponse = array(
"code" => true,
"style" => "success",
/*********** SCREENSHOT COMES FROM HERE ***********/
"message" => $_FILES["file"]["tmp_name"]." ".$_FILES["file"]["name"]." ".$_FILES["file"]["type"]." ".$_FILES["file"]["size"]." ".$_FILES["file"]["error"],
);
$view = View::create();
$view->setFormat('json');
$view->setData($apiResponse);
return $this->get('fos_rest.view_handler')->handle($view);
}
$ apiResponse.message(截图):
正如你所看到的,symfony有图像所以问题不是来自我的应用程序移动版。 new UploadedFile();是正确的方法吗?无表格上传。
答案 0 :(得分:0)
以下是解决方案:
替换:
$photo->setFile = new UploadedFile(
$_FILES["file"]["tmp_name"],
$_FILES["file"]["name"],
$_FILES["file"]["type"],
$_FILES["file"]["size"],
$_FILES["file"]["error"],
$test = false
);
通过
$photo->setFile($this->getRequest()->files->get('file'));