【发布时间】:2018-03-22 14:17:11
【问题描述】:
如何在 slim 框架中同时读取 Json 和 File?,我正在尝试这个:
$entityManager = $this -> get(‘em’);
try{
//Salvar foto
$files = $request->getUploadedFiles();
$newimage = $files['foto'];
if ($newimage->getError() === UPLOAD_ERR_OK) {
$uploadFileName = $newimage->getClientFilename();
$type = $newimage->getClientMediaType();
$name = uniqid('img-' . date('d-m-y') . '-');
$name .= $newimage->getClientFilename();
// $imgs[] = array('url' => '/Photos/' . $name);
//local server
$newimage->moveTo("/home/citycare/imgs/$name");#/home/citycare/Imgs/User/$name
//localdev
$photoURL = "/home/citycare/public_html/Imgs/user/$name";#/home/citycare/Imgs/User/$name
}
//Instância da entidade Login
$login = new Login();
//recuperando o parâmetro objeto login do json
$fk_login_cidadao = $request->getParam('fk_login_cidadao');
//setando valores do objeto login
$login ->setLogin($fk_login_cidadao['login']);
$login ->setEmail($fk_login_cidadao['email']);
$login ->setSenha($fk_login_cidadao['senha']);
$login ->setStatus_login($fk_login_cidadao['status_login']);
$login ->setAsAdministrador($fk_login_cidadao['administrador']);
//salvando login
$entityManager->persist($login);
$entityManager->flush();
//buscando login recém salvo
$loginRepository = $entityManager->getRepository('App\Models\Entity\Login');
//pegando login
$loginCidadao = $loginRepository->find($login->getId_login());
//Instância da entidade Cidadao
$cidadao = new Cidadao();
//setando valores do objeto cidadao
$cidadao ->setFk_login_cidadao($loginCidadao);
$cidadao->setNome($request->getParam('nome'));
$cidadao->setSexo($request->getParam('sexo'));
$cidadao ->setSobrenome($request->getParam('sobrenome'));
$cidadao ->setEstado($request->getParam('estado'));
$cidadao ->setCidade($request->getParam('cidade'));
$cidadao ->setDir_foto_usuario($request->getParam($photoURL));
$entityManager->persist($cidadao);
$entityManager->flush();
//retornando confirmação do evento completo
$return = $response->withJson(["result" => true],201)->withHeader('Content-type', 'application/json');
} catch (Exception $ex){
//código e mensagem do erro
throw new Exception($ex->getMessage(), $ex->getCode());
}
return $return;
}
but I’m getting this {“message”:"An exception occurred while executing ‘INSERT INTO login (email, login, senha, status_login, administrador) VALUES (?, ?, ?, ?, ?)’ with params [null, null, “”, null, null]:\n\nSQLSTATE[23000]:
我正在从一个 android 应用程序接收 Json 和 File,现在我正在尝试使用内容类型的 json 帖子;
内容配置:表单数据; name="cidadao"
这是json:
内容类型:multipart/form-data;字符集=utf-8 {"cidade":"Aiuaba","estado":"Ceará","fk_login_cidadao":{"administrador":false,"email":"jvictor@jvictor.com","login":"kikokiko","senha ":"123123123","status_login":true},"nome":"jijo","sexo":"Masculino","sobrenome":"jdiasjdia"}
【问题讨论】: