如何为帖子文件编辑此代码?错误:错误:在null(500内部服务器错误)代码上调用成员函数guessExtension():
我试试这个:
public function ekleAction(Request $request)
{
//doctrini çağırdık
$em=$this->getDoctrine()->getManager();
//posttan gelen veriler
$adi=$request->get('adi');
$aciklama=$request->get('aciklama');
$fiyat=$request->get('fiyat');
$fotom = $request->files->get('foto');
$kapak_foto=$request->files->get('kapakFoto');
$kategorim=$request->get('kategori');
$telefon=$request->get('usrtel');
$user=$request->get('uye_id');
$kategori= $em->getRepository("VanBundle:Kategori")->findOneBy(array('id'=>$kategorim));
$user2=$em->getRepository("VanBundle:User")->findOneBy(array('id'=>$user));
$serializer=$this->get('jms_serializer');
try {
$oto = new Oto();
$oto->setAdi($adi);
$oto->setAciklama($aciklama);
$oto->setFiyat($fiyat);
$oto->setKategori($kategori);
$oto->setUye($user2);
if ($telefon == null) {
$oto->setTelefon("yok");
} else {
$oto->setTelefon($telefon);
}
$fileName2 = md5(uniqid()) . '.' . $kapak_foto->guessExtension();
$kapak_foto->move(
$this->getParameter('brochures_directory'),
$fileName2
);
$oto->setKapakFoto($fileName2);
$images = array();
if ($fotom != null) {
$key = 0;
// Çoklu Fotoğraf alma
foreach ($fotom as $file) {
$fileName = md5(uniqid()) . '.' . $file->guessExtension();
$file->move(
$this->getParameter('brochures_directory'),
$fileName
);
$images[$key++] = $fileName;
$foto = new Foto();
$oto->addFotolar($foto);
$foto->setAdi($fileName);
$foto->setOto($oto);
foreach ($images as $uploadfileName) {
$em->persist($oto);
$em->persist($foto);
$em->flush();
}
}
}
$data=$serializer->serialize("Başarılı",'json');
return new Response($data,200,['content-type'=>'application/json']);
}catch (Exception $exception){
$data=$serializer->serialize($exception->getMessage(),'json');
return new Response($data,200,['content-type'=>'application/json']);
}
}
$kapak_foto=$request->files->get('kapakFoto'); //null
注意:我正在使用Advanced Rest Client
答案 0 :(得分:0)
我试试这段代码:
public function indexAction(Request $request)
{
$foto=$request->files->get('foto');
return new Response(var_dump(base64_decode($foto)));
}
结果:字符串(0)“”
答案 1 :(得分:0)
只需在您的表单标签中添加以下属性:
enctype='multipart/form-data'
答案 2 :(得分:-1)
错误消息告诉您问题,您甚至确定了违规行。您应该添加一些检查以避免破坏您的代码:
if ($kapak_foto instanceof WhateverObject) {
$fileName2 = md5(uniqid()) . '.' . $kapak_foto->guessExtension();
// ...
}
你应该解决问题的根源,即确定你的行
$kapak_foto=$request->files->get('kapakFoto'); //null
正在返回正确的对象。
答案 3 :(得分:-1)
public function ekleAction(Request $request)
{
//doctrini çağırdık
$em=$this->getDoctrine()->getManager();
//posttan gelen veriler
$data = json_decode($request->get('formData'),true);
$adi=$data['adi'];
$aciklama=$data['aciklama'];
$fiyat=$data['fiyat'];
$fotom = $request->files->get('foto');
$kapak_foto=$request->files->get('kapakFoto');
$kategorim=$data['kategori'];
$telefon=$data['usrtel'];
$user=$data['uye_id'];
$kategori= $em->getRepository("VanBundle:Kategori")->findOneBy(array('id'=>$kategorim));
$user2=$em->getRepository("VanBundle:User")->findOneBy(array('id'=>$user));
$serializer=$this->get('jms_serializer');
try {
$emlak = new Emlak();
$emlak->setAdi($adi);
$emlak->setAciklama($aciklama);
$emlak->setFiyat($fiyat);
$emlak->setKategori($kategori);
$emlak->setUye($user2);
if ($telefon == null) {
$emlak->setTelefon("yok");
} else {
$emlak->setTelefon($telefon);
}
$fileName2 = md5(uniqid()) . '.' . $kapak_foto->guessExtension();
$kapak_foto->move(
$this->getParameter('brochures_directory'),
$fileName2
);
$emlak->setKapakFoto($fileName2);
$images = array();
if ($fotom != null) {
$key = 0;
//burası şuani için array değil
// Çoklu Fotoğraf alma
foreach ($fotom as $file) {
// $file = $fotom;
$fileName = md5(uniqid()) . '.' . $file->guessExtension();
$file->move(
$this->getParameter('brochures_directory'),
$fileName
);
$images[$key++] = $fileName;
$foto = new Foto();
$emlak->addFotolar($foto);
$foto->setAdi($fileName);
$foto->setEmlak($emlak);
foreach ($images as $uploadfileName) {
$em->persist($emlak);
$em->persist($foto);
$em->flush();
}
}
}
$data=$serializer->serialize("Başarılı",'json');
return new Response($data,200,['content-type'=>'application/json']);
}catch (Exception $exception){
$data=$serializer->serialize($exception->getMessage(),'json');
return new Response($data,200,['content-type'=>'application/json']);
}
}