私は複数のファイルをアップロードしてその場所を保存しようとしています。新しいファイル名を設定するには、symfonyのマニュアルhttp://symfony.com/doc/current/controller/upload_file.htmlに記載されているguessExtension()メソッドを使用してみました。何らかの理由でこのメソッドとmove()メソッドが認識されません。これで何が起こっているのですか?私はSymfonyのFileクラスとUploadedFileクラスを含めてみましたが、それは問題を解決しませんでした。Symfony 3メソッド 'guessExtension()'と 'move()'が見つかりません
AutoController.php
if($form->isValid() && $form->isSubmitted())
{
$powerType = $form['power_type']->getData();
if($powerType == 'kw')
{
$auto->setPowerKw($form['powerKw']->getData());
$auto->setPowerHp(ceil($form['powerKw']->getData() * 1.34));
}
else if($powerType == 'ag')
{
$auto->setPowerKw(ceil($form['powerKw']->getData() * 0.746));
$auto->setPowerHp($form['powerKw']->getData());
}
// PLACEHOLDER
$auto->setActive(true);
// PLACEHOLDER
// File uploading
$files = $auto->getImages();
$images = array();
foreach($files as $file)
{
$fileName = md5(uniqid()).'.'.$file->guessExtension();
$file->move(
$this->getParameter('carAdds_directory'),
$fileName
);
$images[$fileName] = $fileName;
}
$auto->setImages($images);
$em = $this->getDoctrine()->getManager();
$em->persist($auto);
$em->flush();
return $this->render('@Auto/auto/index.html.twig');
}
Entityクラス
/**
* @var array
*
* @Assert\Image(
* mimeTypes = {
* "image/png",
* "image/pjpeg",
* "image/jpeg",
* "image/gif"
* },
* mimeTypesMessage="Failas yra netinkamo formato",
* maxSize = "10M",
* maxSizeMessage="Failas yra per didelis"
*)
* @ORM\Column(name="images", type="array")
*/
private $images; /**
* Set images
*
* @param array $images
*
* @return Auto
*/
public function setImages($images)
{
$this->images = $images;
return $this;
}
/**
* Get images
*
* @return array
*/
public function getImages()
{
return $this->images;
}
にformTypeクラス
$builder->add('images', FileType::class, array(
'label' => false,
'label_attr' => array('class' => $label_offset),
'required' => false,
'attr' => array(
'class' => $styles,
'multiple' => 'multiple')))...
* EDIT さて、それはこれだけでPHPの嵐がメソッドを認識していなかったように思えるん私はコンパイルエラーがないので、イメージは存在しないのでアップロードされました。 Here's what my database field look like after form submission is complete.
config.yml
carAdds_directory: '%kernel.root_dir%/web/uploads/carAdds'
PHPの嵐はに行く宣言を見つけることができませんと言います。これが私のファイルがアップロードされていないように見えることがありますか?そうであれば、私はどのようにしてパスを適切に指定しますか?
それだけで自動補完だったが判明、しかし画像はフォーム送信後の任意の場所にアップロードされていないようです。 –