6
Symfony2 ile dosya yüklediğimden beri bir süre geçti ve her şey değişmiş gibi görünüyor, kılavuzu How to handle File Uploads with Doctrine numaralı telefondan takip ediyor ancak güncel değil ve çalışmıyor.Symfony 2.2 dosya yükleme
i formu bağlamak çalıştığınızda bir hata alıyorum
Catchable Fatal Error: Argument 1 passed to Entity\Portada::setFile() must be an instance of Symfony\Component\HttpFoundation\File\UploadedFile, string given, ...
bu benim denetleyicisi
/**
* @Route("/upload", name="documento_upload")
* @Method("POST")
* @Template()
*/
public function uploadAction(Request $request)
{
$portada = new Portada();
$form = $this->buildUploadForm($portada);
$form->bind($request);
if ($form->isValid()) {
$portada->upload();
} else {
throw new \Exception("Hay un error en el formulario");
}
//...
}
benim varlıktır
<?php
namespace MyName\MyBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\Validator\Constraints as Assert;
class Portada
{
/**
* @Assert\File(maxSize="6000000")
*/
private $file;
public $path;
/**
* Sets file.
*
* @param UploadedFile $file
*/
public function setFile(UploadedFile $file = null)
{
$this->file = $file;
}
public function upload()
{
$this->path = $this->getFile()->getClientOriginalName();
$this->getFile()->move(
$this->getUploadRootDir(),
$this->path
);
$this->file = null;
}
/**
* Get file.
*
* @return UploadedFile
*/
public function getFile()
{
return $this->file;
}
public function getAbsolutePath()
{
return null === $this->path
? null
: $this->getUploadRootDir() . DIRECTORY_SEPARATOR . $this->path;
}
public function getWebPath()
{
return null === $this->path
? null
: $this->getUploadDir() . DIRECTORY_SEPARATOR . $this->path;
}
protected function getUploadRootDir()
{
return __DIR__ . '/../../../../web/'. $this->getUploadDir();
}
protected function getUploadDir()
{
return 'uploads/portada';
}
}
+1 aaaaahhhhh .... teşekkürler :) –
bunu form oluşturucu olmadan yapmak mümkün mü? – Gigala
@Gigala mümkün ama denemiyorum. '$ this-> getRequest() -> filesB'yi geri döndüren dosyalara göz atın ve nasıl kullanacağınızı kontrol edebilirsiniz. – rkmax